如何用Query来insert一条记录?

ilovedelphi 2002-03-13 11:34:20
我在用Query Insert一条记录:
Query1.SQL.Add('Insert into Userinf');
Query1.SQL.Add('Values(001,'Tom',20,'male')');
报错(关于“‘”)。
请问要如何写insert?
...全文
262 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovedelphi 2002-03-18
  • 打赏
  • 举报
回复
怎么没人说话了?
ilovedelphi 2002-03-17
  • 打赏
  • 举报
回复
我觉得我的SQL语句应该没有问题。因为它可以在SQL Server中正常执行。但是在Delphi中用不了。
sql_man 2002-03-17
  • 打赏
  • 举报
回复
把你的SQl语句打印出来,如:Showmessage(sql.text);

再将该语句拿到SQl server 的Query Analyzer里执行,差错
shadowno 2002-03-17
  • 打赏
  • 举报
回复
同志改用下面试试
SQL.Clear;
SQL.Add('Insert Into Question Values('''JSJ100''','''选择题''','''适 中''','''CPU 是什么?''','''中央处理器''','''方 逵''','''2002-02-04''','''2002-02-04''','''计算机图形学''')');
ExecSQL(); //分步调试时出错的语句,到这一步出错了!


我想可能是分号的原因!
solocom 2002-03-17
  • 打赏
  • 举报
回复
query.sql.add('insert into db (db_f1,db_f2,db_f3) values(:f1,:f2,:f3)');
query.parambyname('f1').asstring:='';
..
..
query.prepare;
query.execsql;
ilovedelphi 2002-03-17
  • 打赏
  • 举报
回复
到底是什么问题呀!怎么没人理我!
ilovedelphi 2002-03-16
  • 打赏
  • 举报
回复
在执行:
SQL.Clear;
SQL.Add('Insert Into Question Values("DDD","选择题","适 中","CPU 是什么?","中央处理器","方 逵","2002-02-04","2002-02-04","计算机图形学")');
ExecSQL();
时分步调试;
出错语句是:ExecSQL();

[Microsoft][ODBC SQL Server Driver][SQL Server]在此上下文中不允许使用'DDD'。
此处只允许使用常量,表达式或变量。不允许使用列名?。
ilovedelphi 2002-03-16
  • 打赏
  • 举报
回复
===================================
在执行下列语句时:
SQL.Clear;
SQL.Add('Insert Into Question Values("JSJ100","选择题","适 中","CPU 是什么?","中央处理器","方 逵","2002-02-04","2002-02-04","计算机图形学")');
ExecSQL(); //分步调试时出错的语句,到这一步出错了!
错误信息:
[Microsoft][ODBC SQL Server Driver][SQL Server]在此上下文中不允许使用'JSJ100'。
此处只允许使用常量,表达式或变量。不允许使用列名?。

到底是什么问题呀!
kukuchen 2002-03-14
  • 打赏
  • 举报
回复
那你检查一下字段设置

prometheusphinx 2002-03-14
  • 打赏
  • 举报
回复
这样写
Query1.SQL.Add('Values(001,''Tom'',20,''male'')');
ilovedelphi 2002-03-14
  • 打赏
  • 举报
回复
我用了Query1.SQL.Add('Values(001,"Tom",20,"male")');
好象还是不行。
报错说什么001是字段名,只能用常量,表达式,变量等等。
我用的是SQL 2000
ilovedelphi 2002-03-14
  • 打赏
  • 举报
回复
那没有Query1.ExecSQL不也执行了吗?请教!
net_quite 2002-03-14
  • 打赏
  • 举报
回复
将该sql语句提交数据库执行。
xxzxwl 2002-03-14
  • 打赏
  • 举报
回复
query1.Cachedupdates:=true;
query1.Requestlive:=true;
query1.insert;
query1.fieldbyname('id').asstring;='str';
query1.post;
karalme 2002-03-14
  • 打赏
  • 举报
回复

with Query1 do
begin
close;
sql.clear;
SQL.Add('Insert into Userinf');
SQL.Add('Values(''001'',''Tom'',20,''male'')'); //都是单引号
execsql;
end;
ihihonline 2002-03-14
  • 打赏
  • 举报
回复
还不行呀?
1、
Query1.Append;
Query1.FieldByName('字段名').value:='你要插入的值';
Query1.Post;

2、 with Query1 do
begin
Close;
SQL.Text:='insert TableName(field1.field2,field3...) values(value1,value2,value3,....) '
Open;
end;
karalme 2002-03-14
  • 打赏
  • 举报
回复
就是引号惹得祸:应该为:
Query1.SQL.Add('Insert into Userinf');
Query1.SQL.Add('Values(001,'''+'Tom'''+',20,'''+'male'')');
ilovedelphi 2002-03-14
  • 打赏
  • 举报
回复
执行不了!怎么半?
hamzsy 2002-03-14
  • 打赏
  • 举报
回复
Query1.SQL.Add('Values("001","Tom",20,"male")');
Query1.ExecSQL;
ilovedelphi 2002-03-14
  • 打赏
  • 举报
回复
没有 Query1.ExecSQL 就不能执行吗?
加载更多回复(11)

828

社区成员

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

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