ホーム
Top.Mail.Ru Yandeks.Metrika
フォーラム: "Bases";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

ダウン

SQLに空のクエリパラメータ値が存在できるかどうか 似ている枝を探す


shakh   (2001-12-03 20:29) [0]

良い一日。 データベースがあります(access2000)。 ユーザーインターフェイス(。Exe)があります。 インターフェイスとデータベース間の通信は、ADOおよびSQLクエリを介して行われます。 さまざまなデータベーステーブルに入力するための一連のフォームがあります。 同時に、フォーム上の一部の編集 "は空のままにすることができます。つまり、値を含めないでください。そして、質問は次のとおりです。要求データの一部のフィールドが空の場合、テーブルを追加(更新)する要求をSQL経由で送信することは可能ですか? ???これは主にテキストフィールドに関するものです。
もちろん、「空」のフィールドの値をチェックし、クエリを動的に形成するオプションがありますが、そのようなフィールドの20ピースがある場合、これはやや面倒な構成です。



Котелок   (2001-12-04 07:35) [1]

可能。

たとえば、次のように

テーブルに挿入(column1、column2)値(:col1 、: col2)

そして、必要な編集の値をパラメーターに割り当てるだけです。
編集が空の場合、空のフィールドも挿入されます。



shakh   (2001-12-04 19:31) [2]

アドオン...まあ、良い。 同じAdoQueryコンポーネントが異なるクエリに使用される場合、パラメーターの数は異なる場合があります。 AdoQuery1.SQL.Add( "テーブルに挿入(col1、col2)値" + Edit1.Text + "、" + Edit2.text + ")"); その後、Edit1またはEdit2の値が空の場合、変数のタイプが無効であるか、フィールドにデフォルトパラメータがないというエラーが表示されます;(
大量の静的クエリパラメータをドラッグしたくない



Delirium   (2001-12-04 20:08) [3]

しかし、フィールドがあり、もちろんNullではない場合、「空の」値を渡すことを妨げるものは何ですか?



Котелок   (2001-12-05 00:46) [4]

編集に行が必要な場合は、このようにしてみてください...

AdoQuery1.SQL.Add( "テーブルに挿入(col1、col2)値" + "" "" + Edit1.Text + "" "" + "、" + "" "" + Edit2.text + "" "" + ") ");
これが文字列であることを明示的に示します。
parambynameを使用した方が信頼性は高くなりますが。



shakh   (2001-12-05 02:08) [5]

そしてもう一つ追加。
多分私は犬がどこで鳴り響いたかについて不十分に説明した%)
クエリAdoQuery1.SQL.Add( "テーブルに挿入(col1、col2)値(" + "" "" + Edit1.Text + "" "" + "、" + "" "" + Edit2.text + "" "" + ")");
ここではすべてが明確です。 ただし、データの入力時に(たとえば)Edit1が空のままになっている場合、この要求を実行すると、Egorはクロールします。 したがって、最小限のコストで(エラー "sから)それらを取り除きたいと思います。
... values(:col1 ,: col2)のようなものを書くことは確かに良いですが、フィールドがほとんどなく、20ピースがある場合は、オブジェクトインスペクターでこれらすべてのパラメーターを作成し、その後、大きな質量で混乱することなく、編集から値を割り当てます-これはすでにトリックのある数字です。
タイプチェックを貼り付けることができます
Edit1.Text <> ""の場合、enable_field_to_query
しかし、これは完全な倒錯です!



Котелок   (2001-12-05 03:33) [6]

インスペクターでオブジェクトを作成する理由は明らかではありませんか?

空の編集とクエリへのパラメータの動的な包含のチェックに関しては、これはそのような倒錯ではなく、完全に正常な現象ですが、エンコードするのは面倒です。

ここに例があります:

sqlText:= "テーブルに挿入(";
edit1.text <> ""の場合
sqlText:= sqlText + "column1"
edit2.text <> ""の場合
sqlText:= sqlText + "column2"
削除(sqlText、長さ(sqlText)、1);
sqlText:= sqlText + ")値(";
edit1.text <> ""の場合
sqlText:= sqlText + ":column1、"
edit2.text <> ""の場合
sqlText:= sqlText + ":column2、"
削除(sqlText、長さ(sqlText)、1);
sqlText:= sqlText + ")";

AdoQuery1.close;
AdoQuery1.SQL.clear;
AdoQuery1.SQL.Add(sqlText);
AdoQuery1.ExecSql;

また、挿入するテーブルのコンストラクターでAccessにアクセスし、空になる可能性のあるすべてのフィールドについて、空の行の入力を許可するパラメーターを設定することをお勧めします。 そして、空のフィールドのチェックは消え、エラーはスローされません。



Ra   (2001-12-05 14:03) [7]

そのようなリクエストを防ぐ必要があるだけです。2つの方法のいずれか
1)実行前に、すべてのフィールドが入力されていない場合は確認してください-メッセージを表示してください...
2)または「コントロール(ほとんどの場合ボタン)を注ぐ」ことも、必要なすべてのデータが入力されるまで..... OnChangeイベントへのすべての編集で、次のハンドラーをハングさせます。

始める Button1.Enable:=(Edit1.Text <> "")および(Edit2.Text <> "")および... 終わり;




NDeu   (2001-12-05 14:19) [8]

> Ra©(05.12.01 14:03)
むしろ:
始まる
Button1.Enable:=(TEditとして送信).Text <> ""
終わり
:)





Котелок   (2001-12-06 01:00) [9]

> Ra
そのような要求が単に必要なときに、そのようなタスクが存在する場合があります。

私自身もこの問題に直面しましたが、25フィールドで通常の静的クエリを使用し、テーブルには空行を入力する権限がありました。



ページ: 1 全枝

フォーラム: "Bases";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

2階





メモリ:0.58 MB
時間:0.04 c
14-22376
真新しい
2001-11-07 01:11
2002.01.08
できる人を助ける


14-22365
ケトマー
2001-10-16 06:22
2002.01.08
おもしろいです:私はシンフェロポリだけからですか?


14-22340
ユラズ
2001-11-06 10:09
2002.01.08
人々、クッキーがW2Kに保存されている場所と、それらを強打する方法を教えてください


3-21918
SVS
2001-12-04 13:11
2002.01.08
BlobFieldからOleContainerを埋める


1-22073
ヒドラマット
2001-12-19 00:22
2002.01.08
DLLまたはBPL





アフリカーンス語 アルバニア語 アラビア語 アルメニア語 アゼルバイジャン語 バスク ベラルーシ ブルガリア語 カタルーニャ語 中国語(簡体字) 中国語(繁体字) クロアチア語 チェコ語 デンマーク語 オランダ語 英語 エストニア語 フィリピン語 フィンランド語 フランス語
ガリシア語 ジョージアン ドイツ語 ギリシャ語 ハイチ語 ヘブライ語 ヒンディー語 ハンガリー語 アイスランド語 インドネシア語 アイリッシュ イタリア語 日本語 韓国語 ラトビア語 リトアニア マケドニア語 マレー語 マルタ語 ノルウェー語
ペルシア語 ポーランド語 ポルトガル語 ルーマニア語 ロシア語 セルビア スロバキア語 スロベニア語 スペイン語 スワヒリ語 スウェーデン語 タイ語 トルコ語 ウクライナ語 ウルドゥー語 ベトナム語 ウェールズ語 イディッシュ語 ベンガル語 ボスニア語
セブアノ語 エスペラント グジャラート語 ハウサ語 モン族 イボ ジャワ語 カンナダ語 クメール語 ラオ語 ラテン マオリ語 マラーティー語 モンゴル語 ネパール語 パンジャブ語 ソマリ タミル語 テルグ語 ヨルバ語
ズールー語
Английский Французский Немецкий Итальянский ポルトガル語 Русский Испанский