問題タブ [ado]

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 投票する
1 に答える
3614 参照

ado - 開いているレコードセットにフィールドを追加する

既存の開いている ADO RecordSet に新しいフィールドを追加する簡単な方法はありますか?

fields.append()RecordSet が開いている場合は機能せず、閉じると既存のデータが破棄されるように見えます。

注意: Microsoft ActiveX DataObject 2.8 Libraryを使用しています。

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

oracle - ADO 接続文字列を使用して SYS として Oracle データベースに接続するにはどうすればよいですか?

私はこれを試しています:

しかし、私はエラーが発生します:

私は Delphi を使用していますが、どの言語でも回答を歓迎します。

明確化: 通常のユーザーとして接続できます。AS SYSDBA に接続しようとすると問題が発生します。

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

sql-server - Perl ADO は、ストアド プロシージャの出力をエラーと見なします。

まず第一に (これが重要な場合に備えて) 私は ActiveState の Perl (MSWin32-x86-multi-thread 用にビルドされた v5.8.7) を使用しています。

エラーの原因を突き止めようとして、3 時間にわたるデバッグ セッションから抜け出しました。エラーはまったくないことがわかりましたが、何らかの理由Errors.Countで、ストアド プロシージャの出力に出力されるメッセージごとに ADO の接続オブジェクトが増加していました。

次の Transact SQL コードを検討してください。

多かれ少なかれ次のような Perl サブルーチンを想像してみてください:

別の場所で、メインの Perl コードで、上記のサブを次のように呼び出しています。

最終的に、すべての PRINT ステートメントによって、新しい疑似エラーが ADO​​ エラー コレクションに追加されることがわかりました。私が実装した簡単な修正は、SP の PRINT を SELECT に変更して、これをバイパスすることでした。

私が聞きたい質問は次のとおりです。

  • この動作は正常ですか?
  • それを回避/バイパスする方法はありますか?
0 投票する
2 に答える
620 参照

sql-server - クラシック ASP: SQL テーブルから翻訳されたページ テキスト、より高速な方法?

page_id従来の ASP VBScript を MS SQL Server と組み合わせて使用​​すると、3 つの整数を取る関数が得られますheading_idlanguage_id

翻訳テーブルでページ見出しを検索します...

このテーブルには約 10,000 行が含まれています...

見出し列は nvarchar(1000) に 3 つの int 列を加えたもので、行あたり最大 2KiB であることを意味します...

したがって、私の質問は、ADO の GetRows または別のメソッドを使用して、このテーブルをメモリ (たとえば、アプリケーション オブジェクト) にコピーする価値があるか、それとも「大きな」データ サイズのために価値がないかということです。

1 ページあたり約 1 ~ 250 の見出し (462 ページ) があり、1 ページあたり平均 34 の見出しがあります。

したがって、ページあたり最大 34 回のデータベース呼び出しを節約するために、大量のメモリとアプリケーションへの呼び出しを使用します。

考え?

0 投票する
6 に答える
8474 参照

vba - Access 2007 VBA クエリのデータがクエリ アナライザに表示されるが、VBA コード化されたレコードセットには表示されない

私が書いた関数は、最初は文字列フィールドを取り、Excel スプレッドシートに値を入力することになっていました。これらの値は継続的に null になりました。レコードセットを追跡し始めたところ、クエリが有効で、Access クエリ アナライザーを介して適切に実行されているにもかかわらず、レコードセットが空であるか、フィールドが欠落していることがわかりました。

この問題をテストするために、クエリを作成し、レコードセットを開き、値をページング (メッセージ ボックスに出力) するサブを作成しました。問題の最も複雑な部分は、クエリの「WHERE」句を中心に展開しているようです。クエリに「WHERE」句を配置しない場合、レコードセットには常にデータがあり、「DESCRIPTION」の値は正常です。

WHERE 句に何かrs.EOF = true入力すると、レコードセットが完全に空 ( ) に戻るか、他のフィールドに値がある [説明] フィールドが完全に空白になります。もう一度強調しておきますが、クエリを debug.print すると、それをコピーしてクエリ アナライザーに貼り付け、期待どおりの有効な値と戻り値を取得できます。

これでいくらか助けていただければ幸いです。ありがとうございました!

編集:誰かがクエリの DEBUG.PRINT を投稿するように要求しました。ここにあります:


ASCII 文字を使用して暗黙的に二重引用符と単一引用符を試しました。

例えば:

chr(39) であなたの提案を試してみました:

どちらも説明に null 値を返します。ただし、クエリを debug.print して Access クエリ アナライザーに貼り付けると、問題なく表示されます。繰り返しますが (補足として)、WHERE 句で LIKE ステートメントを実行すると、完全に空のレコードセットが作成されます。ここで何かが本当に不安定です。


ここに興味深いヒントがあります。テーブルは にリンクされていSQL Serverます。テーブル (データと構造) をローカルにコピーすると、上記の ADO コードは問題なく動作しました。DAO を使用すると、正常に動作します。Windows XPAccess 2003、および のさまざまなバージョンでこのコードを試しましたADO (2.5, 2.6, 2.8)ADOテーブルがリンクされている場合は機能しません。

この問題の原因となる ADO の欠陥があります。


絶対にそうします。DEBUG.PRINT表示されるクエリは、クエリ アナライザーで完全に実行されることを思い出してください。以下を返します。

ただし、同じクエリをレコードセットに対して実行すると、Description に空の値が返されます (他はすべて同じです) ("Null" 値によるメッセージ ボックス エラー)。


「説明」フィールドの名前を「testdep」に変更しようとしましたが、まだ空です。データを表示する唯一の方法は、クエリの WHERE セクションを削除することです。これは ADO の問題だと思い始めています。たぶん、DAO で書き直して、どのような結果が得られるかを確認します。

編集: また、圧縮と修復を数回試みました。サイコロはありません。

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

sql-server - Delphi で ADOConnection を使用して「print」ステートメントの出力を表示する

MS SQL ストアド プロシージャの一部は、'print' コマンドを使用してメッセージを生成します。TADOConnection を使用して MS SQL に接続する Delphi 2007 アプリケーションで、これらの「印刷」コマンドの出力を表示するにはどうすればよいですか?

主な要件: 1) クエリを複数回実行できない。物事を更新している可能性があります。2) データセットが返された場合でも、「印刷」結果を確認する必要があります。

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

asp.net - Entity Framework: FK の操作 (なぜ非表示になるのですか?)

まず、いくつかのテーブルを定義しましょう。

Users テーブルには、ユーザーに関する情報が格納されます。

UserTasks は、ユーザーに関連付けられたタスクを格納するテーブルです。

ADO Entity Framework を使用して UserTasks テーブルを生成すると、次のようなクラスが得られます。

UserTasks
- taskName (文字列)
- Users (Users オブジェクトのコレクション)

注: UserTasks テーブルで生成されるユーザー ID はありません。では、新しいユーザー タスクを挿入する必要があるとしましょう...どうすればよいでしょうか? userID FK フィールドへのアクセス権がないため、唯一のオプションは、ルックアップを実行して Users オブジェクトに入力し、それを次のようにタスク オブジェクトに渡すことです。

上記の問題は、ユーザー オブジェクトを設定するために余分で不必要なデータベース呼び出しを行っていることです。どうにかして私のuserIDフィールドへの新しいマッピングを作成し、それでもUserオブジェクトを保持する方法はありますか?

ありがとう

--ライアン

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

c# - .NETでExcelを読んで、特定の行を取得する方法は?

ここから、C#.NETを使用してExcelファイルを読み取るための次のコードを取得しました。

4行目から10行だけを選択したいのですが、どうすればよいですか?

0 投票する
3 に答える
3151 参照

ado - ADOから空のMDBを作成するにはどうすればよいですか

空の.mdbファイルを作成して、そのファイルでADOコマンドを実行できるようにする必要があります(ADO.NETではありません)。ADOを使用して空のmdbを作成する方法はありますか?

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

delphi - Delphi から GUID を ADO クエリ パラメータとして設定するにはどうすればよいですか?

MS Access では、データベースに 16 バイトのバイナリ フィールドとして格納される数値型の GUID (ドイツ語では 'Replikations-ID' と呼ばれるので、英語では 'replication id' になると思います) を使用できます。

Delphi でTADOQuery / TADOTableを使用してこれらのフィールドにアクセスする方法を見つけました。

しかし今、次のような SQL クエリを実行したいと思います。

上記のステートメントにTADOQuery.SQLプロパティを設定しようとしましAGuidたが、クエリを開くことができるように実際にパラメーターを設定する方法が見つかりませんでした。何を試しても (ADO/COM) エラーが発生しました

1 つ以上の必須パラメーターに値が指定されていません

例えば:

これも機能しません:

どのようにTGuidField(...).AsGuid機能するかを調べたところ、最初に GUID が文字列に変換され、次に文字列がバリアントに変換されることがわかりました (逆も同様です)。

常に次のように SQL ステートメントを生成すると、正常に動作します。

プログラム内でそのTADOQueryオブジェクトを渡しているのでAGuid、ほとんどのメソッドが実際の SQL ステートメントに依存しないように -Parameter のみを変更したいと考えています。

常に完全な SQL ステートメントを変更する以外に、GUID パラメータを設定する方法はありますか?

(MS SQL または MS Access ベースの他のデータベースと同期するには、グローバルに一意の識別子が必要なので、GUID である必要があります。)

編集 vradmilovicは正しいです、これはうまくいきます:

初めて試したとき、なぜうまくいかなかったのかわかりません。