ADO的问题(0分)

  • 主题发起人 主题发起人 gwei
  • 开始时间 开始时间
G

gwei

Unregistered / Unconfirmed
GUEST, unregistred user!
用 ADO 在数据库里 添一条记录
INSERT INGT TABEL
('NAME,LONG')
VALUES
('YYY',123)

在ADO 中后面那个数字怎么用变量写呀
NAME值在 EDIT1 中 LONG值在 EDIT2 中
 
Sql.Text:='insert into tabel(name,long) values(:name,:long)';
Parameters[0].Value:=Edit.Text;
Parameters[1].Value:=StrToInt(Edit2.Text);
ExecSql;
 
用parambyname('name'):=Edit1.text;
parambyname('logn'):=strtoint(Edit2.text);
 
和Query一样的呵!
 
不能 想 写字符串一样吗
比如
adoquery1.sql.add('insert into table')
adoquery1.sql.add('(name,long)');
adoquery1.sql.add('values');
adoquery1.sql.add('('+''''+edit1.text+'''',''''+edit2.text+''''+')');
adoquery1.execsql;
不能象这样吗
 
对你的问题建议你读读SQL方面的书,在DELPHI中使用SQL都是STRING型的数据,必须用单引号扩起来,
还有建议你将''''改成#39来写看起来方便些!
 
我现在那么写 如果是写 字符串类型的 到数据库就没有问题
因为 如果EDIT1.TEXT 是 YYY 那么 ''''+edit1.text+'''' 是表示 'yyy'
我现在就是不要 那个 ' 因为在SQL中 数值型的 不能用 '' 扩起来
有什么办法能解决
 
楼上的虾虾说的都对
我再送你个,也不错
sql.add(format('INSERT into TABEL(''NAME,LONG'')VALUES(%s,%d)',['苦虫',170]))
 
adoquery1.sql.add('insert into table')
adoquery1.sql.add('(name,long)');
adoquery1.sql.add('values');
adoquery1.sql.add('(''''+edit1.text+'''','+edit2.text+')');
adoquery1.execsql;
这样的话 就是 EDIT1 是要的 字符串的 EDIT2 是要的 数值的
 
后退
顶部