問題タブ [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.
ado - 開いているレコードセットにフィールドを追加する
既存の開いている ADO RecordSet に新しいフィールドを追加する簡単な方法はありますか?
fields.append()
RecordSet が開いている場合は機能せず、閉じると既存のデータが破棄されるように見えます。
注意: Microsoft ActiveX DataObject 2.8 Libraryを使用しています。
oracle - ADO 接続文字列を使用して SYS として Oracle データベースに接続するにはどうすればよいですか?
私はこれを試しています:
しかし、私はエラーが発生します:
私は Delphi を使用していますが、どの言語でも回答を歓迎します。
明確化: 通常のユーザーとして接続できます。AS SYSDBA に接続しようとすると問題が発生します。
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 に変更して、これをバイパスすることでした。
私が聞きたい質問は次のとおりです。
- この動作は正常ですか?
- それを回避/バイパスする方法はありますか?
sql-server - クラシック ASP: SQL テーブルから翻訳されたページ テキスト、より高速な方法?
page_id
従来の ASP VBScript を MS SQL Server と組み合わせて使用すると、3 つの整数を取る関数が得られますheading_id
。language_id
翻訳テーブルでページ見出しを検索します...
このテーブルには約 10,000 行が含まれています...
見出し列は nvarchar(1000) に 3 つの int 列を加えたもので、行あたり最大 2KiB であることを意味します...
したがって、私の質問は、ADO の GetRows または別のメソッドを使用して、このテーブルをメモリ (たとえば、アプリケーション オブジェクト) にコピーする価値があるか、それとも「大きな」データ サイズのために価値がないかということです。
1 ページあたり約 1 ~ 250 の見出し (462 ページ) があり、1 ページあたり平均 34 の見出しがあります。
したがって、ページあたり最大 34 回のデータベース呼び出しを節約するために、大量のメモリとアプリケーションへの呼び出しを使用します。
考え?
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 XP
、Access 2003
、および のさまざまなバージョンでこのコードを試しましたADO (2.5, 2.6, 2.8)
。 ADO
テーブルがリンクされている場合は機能しません。
この問題の原因となる ADO の欠陥があります。
絶対にそうします。DEBUG.PRINT
表示されるクエリは、クエリ アナライザーで完全に実行されることを思い出してください。以下を返します。
ただし、同じクエリをレコードセットに対して実行すると、Description に空の値が返されます (他はすべて同じです) ("Null" 値によるメッセージ ボックス エラー)。
「説明」フィールドの名前を「testdep」に変更しようとしましたが、まだ空です。データを表示する唯一の方法は、クエリの WHERE セクションを削除することです。これは ADO の問題だと思い始めています。たぶん、DAO で書き直して、どのような結果が得られるかを確認します。
編集: また、圧縮と修復を数回試みました。サイコロはありません。
sql-server - Delphi で ADOConnection を使用して「print」ステートメントの出力を表示する
MS SQL ストアド プロシージャの一部は、'print' コマンドを使用してメッセージを生成します。TADOConnection を使用して MS SQL に接続する Delphi 2007 アプリケーションで、これらの「印刷」コマンドの出力を表示するにはどうすればよいですか?
主な要件: 1) クエリを複数回実行できない。物事を更新している可能性があります。2) データセットが返された場合でも、「印刷」結果を確認する必要があります。
asp.net - Entity Framework: FK の操作 (なぜ非表示になるのですか?)
まず、いくつかのテーブルを定義しましょう。
Users テーブルには、ユーザーに関する情報が格納されます。
UserTasks は、ユーザーに関連付けられたタスクを格納するテーブルです。
ADO Entity Framework を使用して UserTasks テーブルを生成すると、次のようなクラスが得られます。
UserTasks
- taskName (文字列)
- Users (Users オブジェクトのコレクション)
注: UserTasks テーブルで生成されるユーザー ID はありません。では、新しいユーザー タスクを挿入する必要があるとしましょう...どうすればよいでしょうか? userID FK フィールドへのアクセス権がないため、唯一のオプションは、ルックアップを実行して Users オブジェクトに入力し、それを次のようにタスク オブジェクトに渡すことです。
上記の問題は、ユーザー オブジェクトを設定するために余分で不必要なデータベース呼び出しを行っていることです。どうにかして私のuserIDフィールドへの新しいマッピングを作成し、それでもUserオブジェクトを保持する方法はありますか?
ありがとう
--ライアン
c# - .NETでExcelを読んで、特定の行を取得する方法は?
ここから、C#.NETを使用してExcelファイルを読み取るための次のコードを取得しました。
4行目から10行だけを選択したいのですが、どうすればよいですか?
ado - ADOから空のMDBを作成するにはどうすればよいですか
空の.mdbファイルを作成して、そのファイルでADOコマンドを実行できるようにする必要があります(ADO.NETではありません)。ADOを使用して空のmdbを作成する方法はありますか?
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は正しいです、これはうまくいきます:
初めて試したとき、なぜうまくいかなかったのかわかりません。