問題タブ [adodb]

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.

0 投票する
4 に答える
17410 参照

vb6 - Null レコードセット フィールドで Str() を使用すると、「Null の無効な使用」が発生しますが、Str(Null) は正常に動作します

私はこれで壁に頭をぶつけています。VB6 で記述された古いデータベース レポート コードを調べていたところ、次の行に出くわしました (このコードは、データを「ソース」データベースからレポート データベースに移動しています)。

rsSource!VehYearがの場合Null、上記の行は「無効な Null の使用」実行時エラーを生成します。上記の行を中断し、イミディエイト ペインに次のように入力すると:

を出力しますNull。いいですね、それは理にかなっています。次に、エラーの再現を試みます。

「無効な Null の使用」エラーが発生します。

ただし、イミディエイト ウィンドウに次のように入力すると、次のようになります。

エラーは発生しません。単純に出力しますNull

Trim()の代わりに同じ実験を繰り返すとStr()、すべてうまくいきます。?Trim(rsSource!VehYear)戻りNullます?Trim(Null)。実行時エラーはありません。

だから、私の質問は、それが等しいことがわかっているのに、そうでないStr(rsSource!VehYear)ときに「Nullの無効な使用」エラーをどのようにスローできるのでしょうか?Str(Null)rsSource!VehYearNull


更新:イミディエイト ウィンドウに次のように入力すると、期待どおりに動作します (エラーは発生しません)。

これは を出力しますNullrsSource!VehYearこれで、実際にはADODB.FieldインスタンスであることがわかりましたValueが、そのデフォルト プロパティであるため、プロパティ (つまり) をStr操作する必要があります。エラー メッセージ (「無効な Null の使用」) でさえ、パラメーターを受け取っていることを示唆していますが、ある場合と別の場合ではどのように異なる扱いをするのでしょうか?ValueNullStrNullNull

私の唯一の推測は、の内部実装Str()がどういうわけかデフォルト プロパティを取得できず、別の理由で「Null の無効な使用」エラーが発生しているということです (パラメータ以外の何かが「Null の無効な使用」を引き起こしている可能性があります)。オブジェクトからデフォルト プロパティを取得しようとしていFieldます)。

ここで実際に何が起こっているかについて、より詳細で技術的な説明を持っている人はいますか?

要するに:

が の場合、「無効な Null の使用」エラーをスローしますrsSource!VehYearNull

戻りますNull

ただし、 と の両方Trim(rsSource!VehYear)Trim(rsSource!VehYear.Value)返されNullます。

0 投票する
7 に答える
130162 参照

vbscript - 64ビットマシンで32ビットモードでVBScriptを実行するにはどうすればよいですか?

.vbsで終わるテキストファイルがあり、次のように記述しています。

  • これをWindows32ビットマシンで実行すると、何の概念もなく実行および終了します(予期されます)。
  • これをWindows64ビットマシンで実行すると、エラーが発生します

    プロバイダーが見つかりません。正しくインストールされていない可能性があります。

しかし、それはインストールされています。問題の根本は、64ビットとして存在しないことを私が知っている限り、プロバイダーが32ビットプロバイダーであるということだと思います。

64ビットマシンでIISを介して(ASPファイルとして)VBScriptを実行する場合、32ビットモードで実行するように選択できます。その後、プロバイダーを見つけることができます。

Windows 64ビットでプロバイダーを検索するにはどうすればよいですか?CScript(.vbsテキストファイルを実行する)に32ビットモードで実行するように指示できますか?

0 投票する
1 に答える
3786 参照

ms-access - 連続フォーム、外部接続でレコードを追加/更新する方法

編集さらに調査した結果、一度に1つのレコードしか参照できないため、バインドされていないフォームで連続フォームを使用できないことがわかりました。質問を変更したことを考えると...

データを引き出して仲介者としてテーブルに入力するサンプルフォームがあります。

最初はフォームがバインドされておらず、2つのメインレコードセットへの接続を開きます。リストボックスのレコードセットをそれらの1つに等しく設定し、フォームのレコードセットをもう1つに等しく設定しました。

問題は、レコードを追加したり、既存のレコードを更新したりできないことです。フィールドにキー入力しようとしても、フィールドがロックされているかのようには何も起こりません(ロックされていない場合)。レコードセットの設定は、OpenKeysetとLockPessimisticです。

テーブルはリンクされていません。テーブルはこのプロジェクトとは別の外部アクセスデータベースからのものであり、そのままにしておく必要があります。データを取得するためにadodb接続を使用しています。プロジェクトからのデータの分離がこれを引き起こしている可能性がありますか?

フォームからのサンプルコード

0 投票する
1 に答える
958 参照

php - ADOdb Lite と MySqli の比較

PHPでアーケードサイトを構築するプロジェクトに取り組んでいます。ADOdb Lite または MySqli の使用を検討しています。パフォーマンス、速度、セキュリティの点でどちらが優れていますか?

ありがとう、

0 投票する
1 に答える
627 参照

sql - adodb:createparameterは何をしますか?

平易な英語で、この行の意味を説明していただけますか。

次に、データパス列にデータを書き込む行があります。

しかし、私は最初の行の目的を理解していませんか?adCharとadParamInputとは何ですか?100は何の略ですか?

0 投票する
1 に答える
144 参照

sql - adodb .FIND 質問

Excel を使用して mysql データベースに接続しています

私はこれをやっています:

そしてそれはうまくいきます

ただし、次のように複数の列のデータを一致させる必要があります。

rs.find がすべてのデータと一致したかどうかを知る必要があります。

これどうやってするの?

これによると、私はできません: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1045830.html#

ただし、rs.execute「いくつかの選択ステートメント」を実行できる方法があるかもしれませんが、誰かがこれを手伝ってくれますか?

これは私のためにトリックを行いますか、そして私はEOFをチェックします:

0 投票する
2 に答える
938 参照

sql - rs.filterプロパティの無効な使用?

私はExcelからadodbを使用してmysqlに接続しています

私がやっている:

しかし、それは私にそれがフィルタープロパティの無効な使用であるというエラーを与えています

フィルタプロパティを使用する正しい方法は何ですか?

0 投票する
1 に答える
692 参照

javascript - 本番環境のサーバー側 Javascript は、SQL2008 の名前付きインスタンスへの接続を開くことができません

MDWDATA という名前のサーバーで SQL Server 2000 の既定のインスタンスを何年も使用している運用サイトがあります。そこでは、TCP ポート 1433 と名前付きパイプが有効になっています。私の目標は、この Web アプリを SQL Server 2008 にアップグレードしたデータベースのコピーで動作させることです。DEVMOJITO というサーバーに SQL2008 SP1 をインストールし、さまざまなストアド プロシージャを実行するさまざまな VB6 デスクトップ プログラムを使用して新しいデータベースをテストしました。クライアント サーバー方式と Web サイト自体の一部は、この SQL2008 の名前付きインスタンスに存在するアップグレードされたデータベースに対して正常に機能します。したがって、データベースのアップグレードに問題がないように思われることには満足していますが、この名前付きパイプ プロバイダーで失敗するこの Web サイトの一部があります: SQL Server への接続を開くことができませんでした [1231]。このエラーは誤解を招くと思います。本番サイトで使用されている SQL2000 インスタンスで名前付きパイプを無効にし、SQL を再起動しましたが、すべての ASP コードは正常に動作し続けました (さらに、両方のデータベース サーバーと公開 Web サーバー上のこれらの Web 仮想ディレクトリの間にファイアウォールがあります。

作業ページのデモを行う実稼働仮想ディレクトリへの URL:

失敗したページのデモを行う私の開発 v-directory への URL:

すべてのコードは、開発サイトでアップグレードされたデータベースに接続しようとしていることを除いて、製品サイトと開発サイトの両方で同じです。

探し求めていたチェック項目が数多くあることは承知していますが、以下にいくつかご紹介します。

  1. 失敗しているコードは、何年も前に Brent Ashley の「Javascript Remote Scripting (JSRS)」コード パッケージから採用されたサーバー側 Javascript です。これは、要求を別の ASP ページに送り返し、コールバックを処理することにより、AJAX に似た方法で動作します。ここで指摘すべき重要なことは、データベースへの接続をどのように変更したかということだと思います: (Javascript をここでフォーマットすることはできません!)

    function setDBConnect(datasource) { var strConnect; //ADO 接続文字列 //strConnect = "DRIVER=SQL Server;SERVER=MDWDATA;UID=uname;PASSWORD=x; DATABASE=StagingMDS;";
    strConnect = "Provider=SQLNCLI10;Server=DEVMOJITO\MSSQLSERVER2008;Uid=uname;Pwd=x;DATABASE=StagingMDS;"; strConnect を返します。}

    function serializeSql( sql , datasource) { var conn = new ActiveXObject("ADODB.Connection"); var ConnectString = setDBConnect(データソース); conn.Open( ConnectString ); var rs = conn.Execute( sql );

接続文字列がどのように異なるかに注意してください。それが問題になる可能性があると思いますが、どうすればよいかわかりません。私は本当にTCPを使いたかったので、「名前付きパイプ」が関係しているというエラーが返されたことに驚いています。ここでの接続文字列の構文は、VBScript を使用するサイトの別の部分で正常に使用されているものと同じであり、ここに貼り付けて表示します。

このコードは prod と dev 仮想ディレクトリの両方で機能し、ASP.NET を使用する Web の他の部分の他のコードは、両方のデータベースに対して正しく機能します。名前付きパイプと TCP の両方が各サーバーで有効になっています。パイプで使用される文字列がわかりませんが、常にデフォルトを使用しています。

上記の Javascript 呼び出しで、TCP ではなく名前付きパイプが使用されるのはなぜだろうか。どんなアイデアでも大歓迎です。

0 投票する
2 に答える
3870 参照

asp-classic - ADODB レコードセットを XML にダンプしてからレコードセットに戻し、データベースに保存する

.Save()次の方法で、ADODB レコードセットのメソッドを使用して XML ファイルを作成しました。

上記で生成された XML がファイルに保存されると仮定しましょう。

次のように XML をレコードセットに読み込むことができます。

そして、問題なくレコードをループできます。

しかし、私が本当にやりたいことは、すべてのデータをresまったく別のデータベースのテーブルに保存することです。some_tableこの別のデータベースには既に存在し、XML を作成するために最初に照会したテーブルとまったく同じ構造を持っていると想定できます。

新しいレコードセットを作成し、新しいレコードセットにすべての行を追加するために使用することから始めましAddNewres

resしかし、これは私が最初に値を からに代入しようとしたときに爆発しoutResます。

Microsoft OLE DB Provider for ODBC Drivers エラー '80040e21'

複数ステップの OLE DB 操作でエラーが発生しました。利用可能な場合は、各 OLE DB ステータス値を確認します。作業は行われませんでした。

XML からロードされたデータを別のデータベースにコピーするためのより良い方法を教えてください。

更新、部分的に解決

したがって、私のエラーは、Identityフィールドの値を設定しようとしたことが原因であることがわかりました。そのフィールドを ID に一時的に変更するとすべてのデータが完全に挿入されます。

さて、フォローアップの質問

そのフィールドの Identity プロパティを一時的にオフにし、更新が完了したら再びオンにするにはどうすればよいですか?

0 投票する
2 に答える
47842 参照

sql - 私のデータベースへのDSNを見つけますか?

SQLデータベースがあり、いくつかのレガシー機能をサポートするためにVBAを使用してデータベースに接続したいと考えています。ADODB接続を使用していて、データベースDSNが何であるかを知る必要があります。どうすればこれを見つけることができますか?

SQLServer2008を使用しています。ありがとうございます。:D