首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问query控件调用存储过程的有关问题

2012-03-09 
请教query控件调用存储过程的问题这是我的代码:var p1,p2,p4,p5,p6,p7,p8,p9,p10,p11:stringvar p3:integ

请教query控件调用存储过程的问题
这是我的代码:
var p1,p2,p4,p5,p6,p7,p8,p9,p10,p11:string;
var p3:integer;
begin
  p1 := edit1.Text;
  p2 := edit5.Text;
  p3 := Integer.parseInt("edit4.text");-------------------ERROR
  p4 := combobox2.Items[combobox2.ItemIndex];
  p5 := combobox1.Items[combobox1.itemindex];
  p6 := datetimepicker1.DateTime.datetimetostr;-------------------ERROR
  p7 := edit2.Text;
  p8 := edit3.Text;
  p9 := edit8.Text;
  p10 := edit9.Text;
  p11 := richedit1.Text;

  query1.sql.Clear;
  query1.SQL.Add('exec insertproc1');
  query1.sql.add('p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11');
  query1.sql.execsql;
为什么那两行会出错?
我的思路是传入edit等的值作为调用我存储过程的参数

我的存储过程数据结构如下:
  @职员号_1 [char](10),
@姓名_2 [char](10),
@工资_3 [money],
@职务_4 [char](10),
@性别_5 [char](2),
@出生日期_6 [datetime],
@身份证号_7 [char](20),
@籍贯_8 [char](50),
@家庭住址_9 [char](50),
@手机号码_10 [char](15),
@其他情况_11 [char](50)

[解决办法]
应该写成:

query1.sql.add(' '''+p1+''','''+p2+''','+inttostr(p3)+','''+p4+''','''+p5+''','''+p6+
''','''+p7+''','''+p8+''','''+p9+''','''+p10+''','''+p11+'''');
[解决办法]
楼主应该看一下SQL的书了,SQL语句里面字符串相加是要用引号“+”字符来实现。
query1.sql.add('p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11');
改为:
query1.sql.add(' '''+p1+''','''+p2+''','+inttostr(p3)+','''+p4+''','''+p5+''','''+p6+
''','''+p7+''','''+p8+''','''+p9+''','''+p10+''','''+p11+''''); 
 
这是最基本的常识。

热点排行