🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

2回答

2663閲覧

Delphi10.3RioでSQLiteをコード内で使用し、SELECT文の結果を変数に入れる処理を行いたい

Angerese77

総合スコア6

Delphi

DelphiはPascalを拡張してオブジェクト指向を導入したWindows, OS X,iOS,Androidのネイティブアプリケーションを開発するための言語です。旧称はObject Pascal。開発用IDE「Delphi」にあわせ現在の名前に改称されました。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2019/12/11 06:37

編集2019/12/11 07:37

前提・実現したいこと

とあるシステムの一部を作る際に、ユーザー名を格納しているcombobox.ItemIndex番号に対応したユーザー名専用のテーブルIDから名前(文字列)を取得し、SELECT文の結果を変数に入れる処理について考えました。

しかし、SELECT文で変数を入れる処理を実行するとエラーが発生しました。
この原因としてどのようなものがあるかご存知でしょうか?

発生している問題・エラーメッセージ

エラーメッセージ FireDAC Phys SQLite ERROR:unrecognized token : ":"

該当のソースコード

object

1ソースコード 一部 2Query.SQL.Add('SELECT ''' + sname + ''' '''' := '''' USUSNM FROM MFUSER WHERE USUSID = ''''+Ed_user.ItemIndex.ToString+'''' ') ;

試したこと

他にはコードを
Query.SQL.Add('SELECT ''' + sname + ''' ''' + := + ''' USUSNM FROM MFUSER WHERE USUSID = ''''+Ed_user.ItemIndex.ToString+'''' ') ;
のように変えたりしてみたのですが、''' + := + '''の部分で「'@'が必要ですが:=が見つかりました」というエラーメッセージが出てきました。
勿論、2つのエラーメッセージについて調べたのですが、有力な情報が書かれていないためこのサイトを初めて使わさせていただく次第です。

補足情報(FW/ツールのバージョンなど)

Delphiのバージョンは10.3rioで使用するSQLはSQLiteです。

MFUSERはテーブル名
USUSNMは取り出したい文字列
USUSIDはcombobox.ItemIndexに対応するIDです

問題の変数はSELECT文で使用している、snameになります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

SELECT文の結果を変数に入れる処理はこれでできました。
お騒がせしました。

Query.Close; Query.SQL.Clear; Query.SQL.Add('SELECT USUSNM FROM MFUSER WHERE USUSID = ''' + Ed_user.ItemIndex.ToString + ''' ') ; Query.Open; sname := (FieldByName('USUSNM').AsString);

投稿2019/12/12 05:55

Angerese77

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

566_Delphi 10.1 Berlin Starter で SQLite データベース

ZQuery1.SQL.Add('select * from Syokuhin where "食品群" like "野菜%"');

の記述方法が参考になるでしょうか?

投稿2019/12/11 06:48

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Angerese77

2019/12/11 06:55

回答ありがとうございます。 説明不足で申し訳ありません。 SELECT文の結果を変数に入れる処理を考えております。 何かお心当たりありましたらご教授いただければ幸いです。
Angerese77

2019/12/11 07:39

回答ありがとうございます。 伝えたい説明がかなり違っていたので更新しました。申し訳ありません。 SELECT文の結果を変数に入れたいのです。
Orlofsky

2019/12/11 08:56

他のメンバーの回答を期待しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問