HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1231
masako99SQlele の INSERT INTO について2解決


masako99

リンク

2017/12/31(Sun) 09:36:53|NO.82117


#include "sqlele.hsp" sql_open "サンプル.db" s1="日付" : s2="場所" ; 「ログテーブル」がない場合、テーブル作成 sql_q "CREATE TABLE IF NOT EXISTS ログテーブル (ID INTEGER PRIMARY KEY, 日付, 場所)" // sql_q "CREATE TABLE IF NOT EXISTS ログテーブル (ID INTEGER PRIMARY KEY, s1, s2)" ; レコードを追加 a=""+gettime(0)+"."+gettime(1)+"."+gettime(3)+" "+gettime(4)+"-"+gettime(5)+"-"+gettime(6)+"" b="横浜" sql_q "INSERT INTO ログテーブル ( 日付, 場所) VALUES ("+prm_text(a)+","+prm_text(b)+")" //sql_q "INSERT INTO ログテーブル ( s1, s2) VALUES ("+prm_text(a)+","+prm_text(b)+")" ; テーブル内のデータをすべて抽出 ;「,」区切りで複数のカラム名を列挙すれば、列挙されたカラムのデータを取得します。 ; また「*」アスタリスクのみは対象テーブルの全てのカラムを指します。 sql_q "SELECT * FROM ログテーブル" count = stat mes "記録件数 : " + count + " 件" repeat count mes "ID=" + sql_v("ID") + ", 内容 : 日付=" + sql_v("日付")+" 場所="+ sql_v("場所") //mes "ID=" + sql_v("ID") + ", 内容=" + sql_v(s1)+ sql_v(s2) sql_next loop sql_close
変数s1,s2を使いたいのですが、
sql_q  〜

// sql_q  〜
にするとエラーになってしまいます。
sql_q "INSERT INTO ログテーブル ( 日付, 場所) VALUES 〜
だと正常に作動するのですが
sql_q "INSERT INTO ログテーブル ( s1, s2) VALUES 〜
でエラーになってしまいます。
SQlele超初心者です。よろしくお願い致します。



この記事に返信する


masako99

リンク

2017/12/31(Sun) 11:08:30|NO.82121

mes "ID=" + sql_v("ID") + ", 内容=" + sql_v("s1")+ sql_v("s2")
解決しました。



ぜーっと!

リンク

2017/12/31(Sun) 11:40:33|NO.82124

解決されたようでよかったです。
しかし、解決した内容の
mes "ID=" + sql_v("ID") + ", 内容=" + sql_v("s1")+ sql_v("s2")
のようにすると、s1およびs2は 文字列の"s1" "s2" であって、
変数の"日付" "場所"が展開されたわけではないと思います。

先に実行されたクエリーに問題があり、
//sql_q "INSERT INTO ログテーブル ( s1, s2) VALUES ("+prm_text(a)+","+prm_text(b)+")"
以下を実行していると思うので、たまたま、sql_v("s1")の書き方でが s1 s2 で動いたと思います。

変数展開するのであれば、後半はそのままに、前半(クエリー)の書き方を修正すればいいような気がします。

#include "sqlele.hsp"
sql_open "サンプル.db" s1="日付" : s2="場所" ; 「ログテーブル」がない場合、テーブル作成 sql_q "CREATE TABLE IF NOT EXISTS ログテーブル (ID INTEGER PRIMARY KEY, 日付, 場所)" // sql_q "CREATE TABLE IF NOT EXISTS ログテーブル (ID INTEGER PRIMARY KEY, s1, s2)" ; レコードを追加 a=""+gettime(0)+"."+gettime(1)+"."+gettime(3)+" "+gettime(4)+"-"+gettime(5)+"-"+gettime(6)+"" b="横浜" //sql_q "INSERT INTO ログテーブル ( 日付, 場所) VALUES ("+prm_text(a)+","+prm_text(b)+")" sql_q "INSERT INTO ログテーブル ( "+ s1 +","+ s2 +") VALUES ("+prm_text(a)+","+prm_text(b)+")" ; テーブル内のデータをすべて抽出 ;「,」区切りで複数のカラム名を列挙すれば、列挙されたカラムのデータを取得します。 ; また「*」アスタリスクのみは対象テーブルの全てのカラムを指します。 sql_q "SELECT * FROM ログテーブル" count = stat mes "記録件数 : " + count + " 件" repeat count //mes "ID=" + sql_v("ID") + ", 内容 : 日付=" + sql_v("日付")+" 場所="+ sql_v("場所") mes "ID=" + sql_v("ID") + ", 内容=" + sql_v(s1)+ sql_v(s2) sql_next loop sql_close



ONION software Copyright 1997-2021(c) All rights reserved.