問題タブ [tadotable]

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 に答える
14130 参照

delphi - スペースを含むフィールド名でADOテーブルを並べ替えるにはどうすればよいですか?

私はDelphiを使用していますが、これは単純で一般的な問題です。

私は次のことをしています:

これは非常にうまく機能し、レコードが入ってくるときにCITYフィールドの昇順で並べられたレコードを1つずつ効率的に処理できます。

しかし、今はスペースが埋め込まれている「LASTNAME」フィールドで注文したいと思いました。しかし、私がステートメントを使用するとき:

エラーメッセージが表示されます:

SORT文字列構文のヘルプを見てきました。複数のフィールドをコンマで区切り、フィールドの後にASCまたはDESCを追加して、昇順または降順で並べ替えることを示しています。ただし、フィールド名にスペースが含まれている場合の対処方法については説明していません。

フィールド名を一重引用符と二重引用符で囲み、スペース文字として#20を使用してみましたが、機能しません。

Microsoft Accessデータベースのフィールド名を変更することはできません。これは、使用していない他のプログラムがそれに依存しているためです。

私が知らないこれを行う簡単な方法があるに違いないと確信しています。

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

delphi - Delphi: TAdoTable.Insert は実際には挿入ではありませんか?

マスター/詳細テーブル、tblCategory (マスター) と tblItems (詳細) としてリンクされた 2 つの ADO テーブルがあります。どちらのテーブルにも独自のグリッドがあり、同じ形式で表示されます。また、データ対応コントロール (dbedits) もあります。

たとえば、現在、カテゴリ = 本、アイテム数 = 10 レコードで、グリッドのレコード番号 5 を指しています。アイテムに新しいレコードを追加したいので、次を使用します。

tblItems.Insert;

問題は、新しい行を追加する代わりに、グリッドと db 対応コントロールが現在のレコード (rec No 5) を表示していることです。それだけでなく、レコードも編集モードになっているようです。キャンセルして挿入コマンドを繰り返した後、新しい行が表示されました。

これを修正する方法 tblItems.Insert を使用するたびに、常に新しい空の行が追加されます:)

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

delphi - onNewRecord の別のテーブルに挿入する

OnNewRecord イベントを持つ ADOQuery を取得しました。

手順で、データを自動的に別のテーブルに追加しようとします。データは、取り消された場合に必要とされ、clientDataSet で処理されるいくつかの行です。

ロケで

その他のAdoQuery.insert;

ADOQuery が null 以外のフィールドに null を挿入できなかったというエラーが表示されます。私は挿入モードですが、DELPHI に投稿を依頼したことはありません。投稿する理由がわかりません。

編集: この問題のヒントを見つけるのを手伝ってくれませんか?

もう少し明確にします:

ADOQuery.onNewRecord();

始める

ClientDataSet.insert; //ADOQueryPost の投稿に移動します。ClientDataSet がブラウズ状態だった場所

終わり;

編集:

このバグは意味がありません! スタック トレースを見てください。

  • 前投稿
  • 新記録
  • myFunc

myFunc は Insert で NewRecord を引き起こします。

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

delphi - Accessテーブルから変数に列名をロードするにはどうすればよいですか(どちらを使用するかわかりません)?Delphi7でADOTableを使用しています

MS Accessテーブル(Learnersという名前)からいくつかの変数(どちらを使用するかわからない)に列名をインポートしようとしています。列の名前は日付です。btnSave(TButton)をクリックすると、コードは現在の日付の列がまだ作成されているかどうかを判断する必要があります。そうでない場合は、それを作成する必要があります。これは私がこれまでに得たコードです:

助けてください!何かアドバイスをいただければ幸いです。

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

delphi - TADOTable、Seek、clUseServer の組み合わせ方

Delphi の ADOTable でカーソル位置が clUseServer に設定されている場合、シーク機能を使用できますか? 代わりにlocate関数を使用できることはわかっていますが、seek関数よりもはるかに遅くなります。

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

database - Delphiでマスターと詳細の接続を逆にする

マスター/詳細接続を使用して接続されている2つのテーブルがあります。Form2の作成時に接続を逆にする必要があります。つまり、マスターテーブルが詳細テーブルになり、詳細テーブルがマスターテーブルになります。

これを試してみたところ、プログラムはコンパイルされましたが、希望どおりに動作しません(以前の接続は切断されましたが、逆にされていないため、プログラムはテーブルがまったく接続されていないように動作します):

これをどのように達成できるかについてのアイデアはありますか?

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

database - ADOTableフィールド値のチェックに関する問題

Delphiでさらに別の問題が発生しています。データベーステーブルのフィールドが0に等しいかどうかをチェックし、それがtrueの場合、特定のボタンのフォントの色とキャプションを変更するコードを作成しました。メインフォームの作成時に実行されます。ただし、プログラムを実行しても何も起こりません。プログラムは表示されず、エラーも発生しません。何が悪いのか真剣にわかりません。ある種の無限ループのようです。

コードは次のとおりです。

注:ADOTableStorageテーブルは、マスター/詳細接続の詳細テーブルにあります。

ありがとう!

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

delphi - 主従関係の ADOTable.Locate

2 つのテーブル間にマスター/詳細関係があり、マスター テーブルでレコードを選択し、その詳細が詳細テーブルに表示されます。次に、マスター テーブルの選択したレコードに関する詳細で詳細テーブルのみを検索したいのですが、ADOTable を使用する場合。 Locate(...) 、詳細テーブルのすべてのレコードを検索します!
たとえば、私はこのテーブルを持っています:

主人 :

ID | 名前

11 | マフムード
22 | マセウド

....

詳細 :

UID | ペット(!)
11 | 猫
22 | 犬
22 | ネコ

ユーザー "Mahmood" (ID = 11) を選択しました。詳細テーブルには、UID = 11 および Pet = Cat で示される 1 つのレコードのみが表示さ
れます。詳細テーブルで検索したい:
DetailTable.Locate('Pet', 'Dog', [ ]))

上記の「検索」は「TRUE」を返しますが、選択したユーザーの詳細に「犬」の値を持つレコードはありません

この問題を解決するにはどうすればよいですか?
マスターテーブルで選択したレコードの詳細を検索したい

前にありがとう...

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

delphi - クラスTADOConnection/TADOTableが見つかりません

さて、DataModuleフォームを作成し、すべてのデータベースコンポーネントをそこに移動して、デザイン時のフォームを少しクリーンアップすることを決定するまで、アプリケーションは正常に機能していました。Delphi XE2 Update 1と、これらのコンポーネント、TADOConnection、TADOTable、TADOQuery、TADOCommandを使用しています。メインフォームではなく、DataModuleフォームで上記の名前のコンポーネントを使用してアプリを初めて実行しようとするとすぐに、DPRからのこの行が実行されたときにエラーが返されるようになりました。

Application.CreateForm(TDataModule1, DataModule1);

発生したエラーは、クラスTADOCOnnectionが見つかりません。。TADOConnectionを削除してDataModuleフォームに再度追加したので、別のエラーが発生します。クラスTADOTableが見つかりません。TADOTable、しかし、これは、DataModuleで作成順序が変更され、フォームで作成される最初のオブジェクトがaであるためだと思います。

usesDataModuleからの私の句は次のとおりです。

uses System.SysUtils, System.Classes, Data.Win.ADODB, Data.DB;

このエラーを克服するためにuses句にADODBとDBを含めると述べている他の投稿を読みましたが、それは役に立たないようです。

私の完全なDPRファイルは次のとおりです。

DataModuleを作成するDPRファイルから行を削除して、メインフォームで手動で実行しようとしましたが、同じエラーメッセージが表示されると変更されます。

すべてのコンポーネントをメインフォームに戻す以外に、次に何を試すべきかわかりません。XE2ではDataModuleフォームが以前のバージョンのDelphiと同じように機能しません。また、コンポーネントがメインフォームにあるときに、同じTADOConnectionおよびTADOTableクラスが見つからないというメッセージが表示されないのはなぜですか。

どんな考えや洞察も大歓迎です。

ジェームズ