答案已近搜过,没有解决用delphi做的一个小东西,但是老提示数据类型不匹配。用的是delphi+access。。各位帮忙!var
lfc_blade_left:integer;
//**********************中间代码省略sql.add('insert into blade (blade_left_no) values ('''+lfc_blade_left+''')');//*************************************************下面是数据库字段blade_left_no(整型)33----------------------------------------------------
程序主要作用:根据输入的要领取的产品名称,先从数据库中读取目前剩余的数量,然后往数据库写入一条新的领取记录(blade_left_no字段 数据为 剩余数量-1)。。但是每次都提示,数据类型不匹配。
lfc_blade_left:integer;
//**********************中间代码省略sql.add('insert into blade (blade_left_no) values ('''+lfc_blade_left+''')');//*************************************************下面是数据库字段blade_left_no(整型)33----------------------------------------------------
程序主要作用:根据输入的要领取的产品名称,先从数据库中读取目前剩余的数量,然后往数据库写入一条新的领取记录(blade_left_no字段 数据为 剩余数量-1)。。但是每次都提示,数据类型不匹配。
解决方案 »
- 请手请进----------如何声明一个这样的数组?
- isapi的dll,怎么根据出错信息计算出错的行?
- [求助]网上缴费系统的通信方式问题
- 能不能用SQL语句得到SQLServer 2000的表中的列的描述值?
- 请各位朋友来帮忙,多谢了!!!来参与讨论吧.!!
- ReportBuilder实现把从表中的几条数据从上至下打印出来,如果一面不够的话自动换至第二页(问题)
- 如何判断DBGRID中各字段的类型?
- @@@@@网速太慢,我一下提两个问题,请帮忙@@@@@
- 谁能告诉我?TClientDataSet.commandtext
- 时间查询?那位高手帮帮我??
- CxGrid 合并单元格
- 关于TcpClient和TcpServer的一些问题,请高手们多多指教
parameters.parambyname('blade_left_no').value := lfc_blade_left;
begin
close;
sql.Clear;
sql.Add('select top 1 * from blade where new_blade_type='''+combobox1.text+'''');
sql.Add('order by id desc');
execsql;
open; while not eof do
begin
lfc_blade_left:=fieldbyname('blade_left_no').asinteger-1;
end;
close;
sql.Clear;
********************************************************************前面的代码,麻烦各位神人了,我快搞死了,用完了所有搜索引擎。
option1:我数据库里面是integer,你这里用了inttostr,不是又将数据变成string了????
你的blade_left_no为整形,sql语句应该是insert into blade (blade_left_no) values (1)
而不是insert into blade (blade_left_no) values (‘1’),不需要引号
目前不报错了,但是程序死掉了。
提交数据前的代码,麻烦各位了。
procedure *****************************
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select top 1 * from blade where new_blade_type='''+combobox1.text+'''');
sql.Add('order by id desc'); open; while not eof do
begin
lfc_blade_left:=fieldbyname('blade_left_no').asinteger-1;
end;
close;
sql.Clear;
begin
close;
sql.Clear;
sql.Add('select top 1 blade_left_no from blade where new_blade_type='''+combobox1.text+'''');
open;
while not eof do
begin
lfc_blade_left:=fieldbyname('blade_left_no').value -1;
end;
close;
sql.Clear;
sql.Add('insert into blade (change_date,shift,change_time,team,machine_no,');
sql.Add('old_blade_no,old_blade_type,old_blade_life,old_blade_expo,');
sql.Add('new_blade_no,new_blade_type,change_reason,operator,monitor,');
sql.Add('inputor,blade_left_no) values ');
sql.Add('(#'+lfc_date+'#,'''+combobox4.text+''','''+lfc_time+''','''+combobox3.text+''','''+edit2.text+''',');
sql.Add(''''+edit5.text+''','''+combobox2.Text+''','''+edit3.Text+''','''+edit4.Text+''',');
sql.Add(''''+edit8.Text+''','''+combobox1.text+''','''+edit1.Text+''','''+edit10.Text+''','''+edit11.text+''',');
sql.add(''''+unit2.user_name+''','+lfc_blade_left+')');
execsql;
CLOSE;
end;
begin
application.messagebox('提交成功','caution',MB_ICONWARNING);
end;
begin
close;
sql.Clear;
sql.Add('select top 1 blade_left_no from blade where new_blade_type='''+combobox1.text+''''); //从数据库读取产品剩余信息
open;
while not eof do
begin
lfc_blade_left:=fieldbyname('blade_left_no').value -1; //新的产品信息为:lfc_blade_left-1
end;
close;
sql.Clear;
//更新数据库
sql.Add('insert into blade (change_date,shift,change_time,team,machine_no,');
sql.Add('old_blade_no,old_blade_type,old_blade_life,old_blade_expo,');
sql.Add('new_blade_no,new_blade_type,change_reason,operator,monitor,');
sql.Add('inputor,blade_left_no) values ');
sql.Add('(#'+lfc_date+'#,'''+combobox4.text+''','''+lfc_time+''','''+combobox3.text+''','''+edit2.text+''',');
sql.Add(''''+edit5.text+''','''+combobox2.Text+''','''+edit3.Text+''','''+edit4.Text+''',');
sql.Add(''''+edit8.Text+''','''+combobox1.text+''','''+edit1.Text+''','''+edit10.Text+''','''+edit11.text+''',');
sql.add(''''+unit2.user_name+''','+lfc_blade_left+')');
execsql;
CLOSE;
end;
begin
application.messagebox('提交成功','caution',MB_ICONWARNING);
end;
begin
lfc_blade_left:=fieldbyname('blade_left_no').value -1; //新的产品信息为:lfc_blade_left-1
end;
close; 当然会死,这里在不停的循环while not eof do
begin
lfc_blade_left:=fieldbyname('blade_left_no').value -1; //新的产品信息为
fc_blade_left-1
Next;//加上这句
end;
close;
begin
lfc_blade_left:=fieldbyname('blade_left_no').asinteger-1;
end; 这已经是死循环了。加个next吧