問題タブ [tadoquery]

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

sql - Delphi 2010 の TADOQuery の配列パラメータ

簡単なクエリを実行する必要があります。

SELECT * FROM MyTable WHERE Id IN (:ids)

明らかに、指定されたリストに主キー「Id」を持つレコードのセットを返します。パラメータ 'ids' の ADOQuery.Parameters に整数 ID の配列を渡すにはどうすればよいですか? VarArray を試しましたが、うまくいきません。パラメータ 'ids' には、重要な場合、デフォルトで FieldType = ftInteger があります。

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

sql-server - ADO - 複数の結合ステートメントを含む複雑なクエリの結果を編集できますか?

私は、1 つのマスター データベースから多数の異なるデータベースにデータをプッシュできるデータ変換ユーティリティに取り組んでいます。ユーティリティ自体は、宛先にデータがどのように保持されるか (テーブル構造) を認識しませんが、複数の結合ステートメントを含む複雑な SQL クエリを使用して、宛先からデータを返す SQL ステートメントを記述したいと思います。データが、ユーティリティが ADO​​ クエリで認識できる標準化された形式 (フィールド名) である限り。

私がやりたいことは、この ADO クエリのライブ データを変更することです。ただし、複数の結合ステートメントがあるため、これが可能かどうかはわかりません。少なくとも BDE については知っています (BDE を使用したことはありません)。これは非常に厳密で、すべてのフィールド (*) などを返す必要がありました。私が知っている ADO はより柔軟ですが、この場合の柔軟性はよくわかりません。

TADOQuery結果に異なるテーブルのフィールドが含まれている場合、この方法でデータを変更できるはずですか? その場合でも、新しいレコードを最後に追加したいとします ( TADOQuery.Append)。2 つの異なるテーブルに追加しますか?

私が選択している実際の主テーブルには、同じ主キー フィールドで結合された補完的なテーブルがあります。小さいテーブル)。したがって、典型的なステートメントには次のようなものが含まれます。

他のテーブルのレコードへの結合も多数ありますが、それらのレコードへの追加については心配していません。「小」テーブルと「詳細」テーブルに同時に追加することだけが心配です。

そのようなことは ADO クエリで可能ですか? これを可能にするために必要な方法で SQL ステートメントを微調整および変更するつもりです。ありえないとはいえ、嫌な予感がします。

互換性:

  1. SQL Server 2000 ~ 2008 R2
  2. デルファイ XE2
0 投票する
2 に答える
6511 参照

delphi - Delphi 6 を使用した Unicode 文字の処理

Delphi 6で開発されたポーリングアプリケーションがあります。ファイルを読み取り、仕様に従ってファイルを解析し、検証を実行してデータベースにアップロードします(SQL Server 2008 Express Edition

日本語 OS などの 2 バイト文字セット (DBCS) を持つオペレーティング システムのサポートを提供する必要がありました。そこで、SQL Server のデータベース フィールドを varchar から nvarchar に変更しました。

ポーリングは、DBCS を使用するオペレーティング システムで正常に機能します。システム ロケールが日本語/中国語/韓国語に設定されていて、オペレーティング システムにそれぞれの言語パックがある場合、DBCS 以外のオペレーティング システムでも正常に機能します。ただし、ロケールが英語に設定されている場合、データベースには 2 バイト文字のジャンク文字が含まれます。

いくつかのテストを実行しましたが、解決策を特定できませんでした。

たとえば、TStringList を使用してUTF-8ファイルから読み取り、それを別のファイルに保存すると、Unicode データが保存されます。しかし、ファイルの内容を使用して TADOQuery コンポーネントを使用して更新クエリを実行すると、ジャンク文字が表示されます。データベースにはジャンク文字も含まれています。

PFB サンプル コード:

上記のコードは、DBCS オペレーティング システムで正常に動作します。

文字列、ワイド文字列、UTF8文字列で遊んでみました。ただし、ロケールが英語に設定されている場合、これは英語 OS では機能しません。

この問題に関する指針を提供してください。

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

event-handling - TDataSet->Cancel() で引き続き Post を続行できる

私はBeforePostイベントハンドラーで、投稿が完了する前にキャンセルしたいと考えています。BeforePost 関数の最後で、DataSet->Cancel(); を呼び出します。これをデバッグすると、自分の関数から TDataSet.DoBeforePost 関数に移動し、次に TDataSet.Post に移動することがわかります。ここで CheckOperation() を呼び出します。データが正しく入力されておらず、ユーザーにこのエラーが表示されるため、CheckOperation は例外をスローします (私は Cancel() を呼び出して回避しようとしました)。

この操作の順序で間違っていることはありますか? どんな種類のアイデアやガイダンスも大歓迎です。

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

delphi - TMemo コンポーネントから MS Access データベースに複数の行を追加する方法は?

という名前のテーブルを持つ ADO データベースを取得しましたt_codemeaning。以下はテーブル構造です。

にすべてのテーブルを追加しますADOQuery1

この Delphi スクリプトでボタンをクリックします。

メモに1行追加すると、すべてFineです。

しかし、memo1 に複数行のテキストを追加すると、エラーが表示されます。

複数ステップの操作でエラーが発生しました。各ステータス値を確認してください。

これを修正するには?


私の最後の進歩として、新しい文字列変数 aValue を作成し、それに memo1.lines.text を追加しました。

そして、ADOQuery1codemeaning_description.value .... のスクリプトを次のように変更します。

それでも同じエラーが発生しました...

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

mysql - Delphi で SQL テーブルからデータを受け取る

MYSQL データベースからデータを取得して表示する必要があるフォームがあります。
私が作成した SQL コードは、MYSQL 内で実行しようとしたため、正常に動作します。

また、SQL データを取得して表示するために、別のフォーム内で、私のフォームと同様の形式のコードを使用しました。コードは他の形式で完全に機能します。
ただし、このフォームのコードは、SQL テーブルからデータを受信/表示していないようです。

OnShowフォームのイベント用に記述されたコードのスニペットを次に示します。

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

delphi - Delphi7 TAdoQuery の複数行パラメータ

Delphi 7 と SQL Server 2005 で、複数行のパラメータ (Stringlist.text) を TAdoQuery 挿入スクリプトに渡そうとしています。挿入は成功しましたが、フィールドからデータを取り戻すと、

それ以外の

テーブルのフィールド タイプは nvarchar(MAX) で、他のタイプに変更することはできません。テーブルは私のものではありません。パラメータの型を widestring から ftMemo に変更しようとしましたが、何も変わりません。何か案が?

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

delphi - Delphi で ADOquery を使用して更新クエリを PostgreSQL に実行した場合のリターン コード

Postgres データベースで Adoquery を使用しています。UPDATE または INSERT クエリを実行すると、ExecSql も OPEN も影響を受けるレコードの数を返す必要がありますが、常に -1 です。psqlODBC の最新バージョン: 09.01.0200 を使用しています。

コード:

結果は-1

0 投票する
0 に答える
1048 参照

delphi - Delphi ADOQuery パラメータ アクセス違反

これが WinXP では機能しなくなったのに、Win7 などでは機能するのはなぜですか?

ここで、具体的に次のようなパラメーターを作成する必要があります。

明確にするために、2 番目のバージョンは機能しますが、最初のバージョンが機能しなくなった理由を知りたいです。アクセス違反には msado15.dll に関するものがあります。その .dll が最近の一部の Windows Update で変更されたかどうかはわかりません ...

問題があるかどうかはわかりませんが、これは最近、おそらく 1 か月ほど前に発生しました。

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

delphi - TADOQuery: 'フィールド 'MyField' の EDatabaseError 型が一致しません。予想: String actual: FixedWideChar'

3 つの異なるデータベース (開発、ホモログ、および製品) があり、それぞれが 11g と 10g のいずれかの Oracle バージョンにあります。

TADOQuery を使用して、一度にこれらのデータベースの 1 つのみでいくつかのデータを照会しています。

アプリを dev または prod で実行すると、データが完全に返されます。しかし、ホモログで実行すると、次のエラー メッセージが表示されます。

「フィールド 'MyField' の EDatabaseError 型が一致しません。期待値: 実際の文字列: FixedWideChar」

確認済みで、DDLは3つのデータベースで同じなので、データ型の問題ではありません。また、MyField はすべて CHAR(1) です。

誰でも私を助けることができますか?