問題タブ [sql-server-native-client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Native Client、リンク サーバー エラー 削除時のみ
Borland アプリケーションからローカル SQL Server 2005 に接続するために SQL Native Client を使用しています。選択、挿入、および更新には問題ありません。削除すると、次のエラーが表示されます。
sys.servers にサーバー
SERVERNAME\SQLEXPRESS
が見つかりませんでした。正しいサーバー名が指定されていることを確認してください。必要に応じて、ストアド プロシージャ sp_addlinkedserver を実行して、サーバーを sys.servers に追加します。
唯一のインスタンスである既定のインスタンスはSERVERNAME\SQLEXPRESS
であり、リンク サーバーは使用していません。何か案は?MDF ファイルと LDF ファイルをこの DB 用の新しいサーバーに移動してから、再接続したと思います。
更新 1
SQL はありません。これはすべて、カーソルとのプログラムによる対話によって行われます。ADO を使用した ODBC ドライバーです。TableObj->Delete を実行して、レコードを削除します。
sql-server - OLE DB を使用した BLOB の挿入
OLE DB と SQL Server Native Client を使用して SQL Server DB にアクセスするアプリに取り組んでいます。これまで、かなり単純な SQL しか扱っていませんでした。このために、私は を取得しICommandText
て使用していSetCommandText
ます。データベースに大きなオブジェクトを挿入したいと考えています。存在することがわかりますICommandStream
が、これを使用するには、実装するクラスを追加しIStream
、BLOB を適切に引用する (アポストロフィをエスケープするなど) 必要があるようです。確かにもっと簡単な方法はありますか?
補足: OLE DB は私の選択ではありませんでした。この段階では変更できません。したがって、「より高いレベルのものを使用する」というより簡単な方法は利用できません。
sql-server - SQL Server が比較のために DATE を DATETIME に自動的にアップコンバートしないのはなぜですか?
SQL Server 2008 の新しい DATE データ型が気に入っていますが、DATE フィールドをリンク サーバー (この場合は SQL 2005) の DATETIME フィールドと比較すると、次のようになります。
次のエラーが表示されます。
「スケールが無効です」というのは、明らかに、ネイティブ クライアントが DATE データ型をリンク サーバーに返しているためです。これは SQL 2005 であるため、どうすればよいかわかりません。この同じクエリを 2008 サーバーに対して実行すると、問題なく動作します。SQL Server は、問題なく DATE および DATETIME データ型を比較できます。
これが私の質問です。Native Client が '2009-11-09' の DATE 値を '2009-11-09 00:00:00.000' の DATETIME に自動的に変換しない理由があるので、以前のバージョンのSQL Server はそれを詰まらせませんか?
php - SQL Server 2005、SQL Driver for PHP v1.1 で「トランザクションがトリガーで運命づけられました」というエラーが発生する
短いバージョン: sqlsrv ドライバー (ネイティブ クライアント ラッパー) は、トリガーから生成された制約違反エラーを「処理」します。mssql ドライバー ( ntwdlibラッパー) は、問題なく報告します。
- SQL Server 2005
- PHP 5.3.1
- PHP 1.1 用の SQL Server ドライバー
備品:
INSERT INTO v SELECT CURRENT_TIMESTAMP;
Management Studio を実行すると、収益が得られます
sqlsrv_query で実行してもエラーは報告されません。
出力
アプリケーションには、後のステートメントが失敗する以外に、トリガーが失敗したことを確認する方法がありません (らしい)。
質問:どうしたの? この PHP ドライバーを使用しますか? DML トリガーでビューを使用していますか? ドライバーは運命の取引を報告しますか?
edit 2010-02-17 11:50 : 質問の最初のバージョンでは、単純なINSERT
. これは、制約に違反する DML がTRY
ブロック内にある場合にのみ発生します。混乱させて申し訳ありません。
2010-03-03 を編集: の重大度レベルに執着しすぎないようにRAISERROR
、実際のコードは と でキャッチされたエラーを再スローしようとERROR_NUMBER
しERROR_SEVERITY
ますERROR_STATE
。
さらに、以下の質問に注意してください。
質問:どうしたの? この PHP ドライバーを使用しますか? DML トリガーでビューを使用していますか? ドライバーは運命の取引を報告しますか?
ここに記載されている状況を直接経験せずに賞金を収穫しようとしないでください.
sql-server - ミラー化された環境でプリンシパル サーバーに完全な障害が発生した後、SQL Native Client 接続を再度開く必要がありますか?
以下のような接続文字列があります。
この接続文字列を使用する SQL Native Client は、NYAVDEVINTDCDB1
サーバーが完全に切断された場合、またはネットワークからの接続が失われた場合に再接続を実行する必要がありますか? そうでない場合、なぜ私は
この状況はいつ発生しますか?
SQL Server Standard Edition 9.00.3152.00 SP2 を使用しています
delphi - BDE、Delphi、ODBC、SQL ネイティブ クライアント、デッド ロック
BDE を使用して、SQL Server Native Client ODBC ドライバー (2005 バージョン) を介して SQL Server 2008 にアクセスする Delphi コードがいくつかあります。私たちの問題は、複数のテーブルへの挿入を行うループでデッドロックの問題が発生していることです。
ループ全体が [TDatabase].StartTransaction 内で実行されます。SQL Server プロファイラーを見ると、ループ中のある時点で SPID (セッション ID?) が変更され、自然にデッドロックが発生することがはっきりとわかります。(両方の SPID が同じテーブルに挿入します)
ある時点でBDEがDBへの2番目の接続を行うようです...
(BDE をスキップしたいのですが、現在はできません。)
共有する経験がある人はいますか?
delphi - winebottler を使用して MacOSX で SQL Server ネイティブ クライアントを必要とする win32 ネイティブ アプリケーションを実行するにはどうすればよいですか?
私はWineBottlerを試していて、OSX で Delphi で書かれた win32 ネイティブ アプリケーションを実行したいと考えています。
アプリケーションは実行されますが、SQL Server に接続できないため、ログイン画面で停止します。
WineBottlerで使用できるように、OSXにSQL Serverネイティブクライアントをインストールして構成する方法を知っている人はいますか?
注: "winebottler" が利用できないため、タグとして "wine" を付けました。
java - ODBC エラー: 無効な文字列またはバッファの長さ -- Microsoft Server 2008 32 ビット vs 2008 R2 64 ビット
Java 6 コンソール アプリから Microsoft Windows Server 2008 R2 64 ビット システム上の Microsoft SQL Server 2008 R2 に、SQL Server Native Client 10.0 を使用して ODBC システム DSN 経由で接続しようとしています。以下のソースコード:
エラーをスローします
java.sql.exception [Microsoft] [ODBC Driver Manager] 無効な文字列バッファ長
驚くべきことに、まったく同じ方法で構成されたODBCシステム DSN を使用した同じコードは、MS Server 2008 32 ビット (非 R2) および MS SQL Server 2008 R2 で動作します。2 つのシステム間の Microsoft ODBC ドライバー dll は、6.0.xxxx と 6.1.xxxx の異なるバージョンであり、これが原因であると思われます。
sql-server-2008 - SQL Native Client(Windows 7-IIS7)を使用してClassicASPからSQLServer2008R2に接続できない
接続文字列で使用すると、SQL Server2008R2に接続できProvider=SQLOLEDB
ます。しかしProvider=SQLNCLI
、接続文字列で使用すると接続できません。
ADODB.Connectionエラー「800a0e7a」
プロバイダーが見つかりません。正しくインストールされていない可能性があります。
/test.asp、7行目
内に書かれたコードtest.asp
は以下の通りです
接続しようとしているSQLServer(Windows7のIIS7内の従来のASPページから)は、VPNを使用して接続している別のネットワークの別のサーバーにあります。
ODBCデータソース管理者からSQLServer2008 R2(VPN経由で接続されている)へのSQLネイティブクライアントシステムDSN接続を作成して、SQLネイティブクライアントをテストしました。そして、それは正常に接続されました。
これらのスナップは私のWindows7システムからのものです
- Windows 7
- IIS 7
- クラシックASPページ(.asp)
vb6 - VB6「プロバイダーが見つかりません。」
同じマシンで同じ接続文字列を使用している VB6 で記述されたいくつかのアプリケーションがあります。彼らは SQL Server Native Client 10.0 ドライバーで ODBC プロバイダーを使用し、明示的なユーザー名とパスワードで接続しています。
実行時にデータベースに接続しようとすると、アプリケーションの 1 つが例外をスローします。
3706: プロバイダーが見つかりません。正しくインストールされていない可能性があります。
他のアプリケーションが正常に動作しているときに、この 1 つのアプリケーションに問題が発生する理由がわかりません。参照は、バージョン番号まで同じです。