请问这个sql语句哪里错了

coldwave2000 2004-04-06 05:49:13
procedure TForm1.BitBtn1Click(Sender: TObject);
var
data,wc_destory:string;
n:Integer;
begin
data:= Edit35.Text+'-'+Edit36.Text+'-'+Edit37.Text;

if Memo1.Lines[1]<>'' then
begin
for n:=0 to Memo1.Lines.Count do
begin
wc_destory:=wc_destory+Memo1.Lines[n] ;
end;
end;
n:=0;

if Edit1.Text='' then showmessage('请输入厕所位置!')
else
if Edit2.Text='' then showmessage('请输所在路段!')
else
if Edit3.Text='' then showmessage('请输入厕所编号!')
else
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INERT INTO ly_db VALUES(Edit3.Text,Edit1.Text,Edit2.Text,Edit4.Text,Edit5.Text,ComboBox1.Text,Edit6.Text,Edit21.Text,data, Edit7.Text,Edit8.Text,Edit9.Text, wc_destory)');
Query1.ExecSQL;
except
showmessage('数据输入错误!');
n:=-1000 ;
end;

if n<>-1000 then
if Edit1.Text<>''
then
begin
showmessage('数据添加成功!');
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
Edit9.Clear;
Edit21.Clear;
Edit35.Clear;
Edit36.Clear;
Edit37.Clear;
ComboBox1.Clear;
Memo1.Clear;

end;
end;
end.
...全文
50 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
koz 2004-04-07
  • 打赏
  • 举报
回复
你的sql 语句有两个注意的地方:
一就是字段是字符型的,要用“type”形式来告诉编译器这是一个字符型。如果type是变量,要用''''+type+'''',其实还是前后一个双引号。
二是日期,你的data应该是要来输入日期吧。对于不同的数据库,有不同的日期格式。输入时要按照格式来输入,否则会出错
hongama 2004-04-07
  • 打赏
  • 举报
回复
用'insert' 就需要query1.ExecSQL;
如果用append的话,那么就需要在前面sql.add('select * from table where....');
query1.open;/// query.action:=true;
并且要表里有关键字哦,query1.append;query1.fieldbyname('').asstring;=...;post;这样就可以了
coldwave2000 2004-04-07
  • 打赏
  • 举报
回复
请问下那应该怎么改
现在的语句是

query1.Append;
query1.FieldByName('pos').AsString:=trim(Edit1.Text);
query1.FieldByName('road').AsString:=trim(Edit2.Text);
query1.FieldByName('num').AsString:=trim(Edit3.Text);
query1.FieldByName('admin').AsString:=trim(Edit4.Text);
query1.FieldByName('phone').AsString:=trim(Edit5.Text);
query1.FieldByName('business').AsString:=trim(Edit6.Text);
query1.FieldByName('ad').AsString:=trim(Edit7.Text);
query1.FieldByName('buy').AsString:=trim(Edit8.Text);
query1.FieldByName('sell').AsString:=trim(Edit9.Text);
query1.FieldByName('people').AsString:=trim(Edit21.Text);
query1.FieldByName('sex').AsString:=trim(ComboBox1.Text);
query1.FieldByName('time').AsString:='1999';
query1.FieldByName('broken').AsString:='无';
query1.Post;

还是报错说database关闭呢

如果在query1.Append;前面加query1.open就会报错说sql里面没有语句
应该怎么改啊.
lzy6204 2004-04-07
  • 打赏
  • 举报
回复
改正-》

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:='INERT INTO ly_db (pos,road,...sex) VALUES( '+ quotedstr(trim(Edit1.Text))+',' + quotedstr(trim(Edit2.Text))+ ','...quotedstr(trim(Edit2.Text)+')';
Query1.ExecSQL;
注意一个字段按顺序对应一个值
hhzqf1980 2004-04-07
  • 打赏
  • 举报
回复
'''+edit1.text+'''
表示是 STRING;
‘+EDIT.TEXT+’
表示是 INTEGER;
vincege 2004-04-07
  • 打赏
  • 举报
回复
1、query1.open;
由于insert语句无法返回一个数据集所以要用query1.execute
2、在adoquery进行edit append post 等等操作之前必须要先打开数据集!!!
3、adoquery.edit是对当前的行进行编辑,所以不用先edit 再append
coldwave2000 2004-04-07
  • 打赏
  • 举报
回复
为什么我改成这样还是不行啊
query1.Edit;
query1.Append;
query1.FieldByName('pos').AsString:=trim(Edit1.Text);
query1.FieldByName('road').AsString:=trim(Edit2.Text);
query1.FieldByName('num').AsString:=trim(Edit3.Text);
query1.FieldByName('admin').AsString:=trim(Edit4.Text);
query1.FieldByName('phone').AsString:=trim(Edit5.Text);
query1.FieldByName('business').AsString:=trim(Edit6.Text);
query1.FieldByName('ad').AsString:=trim(Edit7.Text);
query1.FieldByName('buy').AsString:=trim(Edit8.Text);
query1.FieldByName('sell').AsString:=trim(Edit9.Text);
query1.FieldByName('people').AsString:=trim(Edit21.Text);
query1.FieldByName('sex').AsString:=trim(ComboBox1.Text);
query1.Post;
query1.Append;

说我的dataset关闭了

怎么会关了
coldwave2000 2004-04-07
  • 打赏
  • 举报
回复
可以了..谢谢各位
wujingang1979 2004-04-06
  • 打赏
  • 举报
回复
日哦,你们对sql知多少?
insert into tablename (col1,col2,col3) values('one','two','three')
coldwave2000 2004-04-06
  • 打赏
  • 举报
回复
还是不行
zhlwyy 2004-04-06
  • 打赏
  • 举报
回复
for n:=0 to Memo1.Lines.Count-1 do
var
txtsql:string;
txtsql:='INERT INTO ly_db VALUES ('''+Edit3.Text+''','''+Edit1.Text+''','''+Edit2.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+ComboBox1.Text+''','''+Edit6.Text+''','''+Edit21.Text+''','''+data+''', '''+Edit7.Text+''','''+Edit8.Text+''','''+Edit9.Text+''', '''+wc_destory+''')';
query1.sql.add(txtsql);
query1.open;
bsmqu 2004-04-06
  • 打赏
  • 举报
回复
txtsql:string;
txtsql:='INERT INTO ly_db VALUES('''+Edit3.Text+''','''+Edit1.Text+''','''+Edit2.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+ComboBox1.Text+''','''+Edit6.Text+''','''+Edit21.Text+''','''+data+''', '''+Edit7.Text+''','''+Edit8.Text+''','''+Edit9.Text+''', '''+wc_destory+''')';
query1.sql.add(txtsql);
你试试这样
coldwave2000 2004-04-06
  • 打赏
  • 举报
回复
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INERT INTO ly_db VALUES('''+Edit3.Text+''','''+Edit1.Text+''','''+Edit2.Text+''','''+Edit4.Text+''','''+Edit5.Text+''','''+ComboBox1.Text+''','''+Edit6.Text+''','''+Edit21.Text+''','''+data+''', '''+Edit7.Text+''','''+Edit8.Text+''','''+Edit9.Text+''', '''+wc_destory+''')');

改成这样还是不行啊
menggirl 2004-04-06
  • 打赏
  • 举报
回复
变量要
'''+edit1.text+'''
insert2003 2004-04-06
  • 打赏
  • 举报
回复
Query1.SQL.Add('INERT INTO ly_db VALUES(Edit3.Text,Edit1.Text,Edit2.Text,Edit4.Text,Edit5.Text,ComboBox1.Text,Edit6.Text,Edit21.Text,data, Edit7.Text,Edit8.Text,Edit9.Text, wc_destory)');

肯定错啦
变量要
'''+edit1.text+'''
vincege 2004-04-06
  • 打赏
  • 举报
回复
'INERT INTO ly_db VALUES('''+Edit3.Text+''','''+Edit1.Text+''','''......

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧