delphi操作mysql 向mytable 表里写数据的时候出错

lonelyriver 2008-11-20 08:16:48
我的表里只有一列数据(类型为int):
SqL.Add('insert into mytable values(s)');出错
把s(s是integer) 换成 99999 是可以的。
这是什么问题呀?
...全文
78 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ld1201 2008-11-22
  • 打赏
  • 举报
回复
SqL.Add('insert into mytable values(s)');出错

sql语句的问题
该为 insert into mytable (列1) values (s)
yanele 2008-11-21
  • 打赏
  • 举报
回复
楼主记得结贴给分才是!
yf520gn 2008-11-21
  • 打赏
  • 举报
回复
呵呵,恭喜~
lonelyriver 2008-11-21
  • 打赏
  • 举报
回复
终于解决了
with ADOQuery1 do
begin
Close;
SQL.Text := 'select * from artlsbmk where Field1= :Param1 and Field2=:Param2';
Parameters.ParamByName('Param1').Value := 'abc';
Parameters.ParamByName('Param2').Value := 2;
Open;
end;
ADO中的参数没有AsString, asInteger,全用.Value,
参数访问方法都用Parameters.ParambyName('ParamName').Value
其它的我没试,先用着吧。

参数前要加::而且还要 parameters.ParamByName('').value:='';
yf520gn 2008-11-21
  • 打赏
  • 举报
回复
你这样肯定是NULL的~~
加:的意思是把S当做一个参数,你后面要对那个参数赋值的。加上这句

sql.add('insert into mytable values(:s)');
Parameters.ParamByName('s').value:=s;
lonelyriver 2008-11-21
  • 打赏
  • 举报
回复
解决了一半了 在参数前 加 ‘:’可以。
不过 写进去的内容成了 NULL 了 。
sql.add('insert into mytable values(:s)');这样运行的时候不会报错 。不过写进去的内容是NULL。
yf520gn 2008-11-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kenshinggg 的回复:]
只有一列数据也要把字段写上啊
如果有integer的话就要转为字符串
[/Quote]
提示的很有道理!

SqL.Add('insert into mytable(你要插入的字段名) values('+s+')');

如果还报错,就把错误信息一起发上来~~
panrongzeng 2008-11-20
  • 打赏
  • 举报
回复
只有一列数据也要把字段写上啊
如果有integer的话就要转为字符串
lonelyriver 2008-11-20
  • 打赏
  • 举报
回复
一楼的大哥 不行啊 我试了。
yf520gn 2008-11-20
  • 打赏
  • 举报
回复

//try it
SqL.Add('insert into mytable values('+s+')');

2,507

社区成员

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

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