DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('begin tran');
DataModule1.ADOQuery1.SQL.Add('update allocated');
DataModule1.ADOQuery1.SQL.Add('set eqmtnum=eqmtnum-:eqmtnum');
DataModule1.ADOQuery1.SQL.Add('where eqmtno=:eqmtno and addressno=:adressno');
DataModule1.ADOQuery1.SQL.Add('insert into rpdeqmt ');
DataModule1.ADOQuery1.SQL.Add
('values(:adressno,:eqmtno,:rpdtime,:addition,:rpdprice,:num)');
DataModule1.ADOQuery1.SQL.Add('commit tran');
DataModule1.ADOQuery1.Parameters.Items[0].Value:=strtoint(RnumEdt.Text);
DataModule1.ADOQuery1.Parameters.Items[1].Value:=strtoint(RnoEdt.Text);
DataModule1.ADOQuery1.Parameters.Items[2].Value:=
DataModule1.ADOTable1.FieldValues['adressno']; DataModule1.ADOQuery1.Parameters.Items[3].Value:=
Copy(RadrsCMB.Text,0,pos (' ',RadrsCMB.Text));
DataModule1.ADOQuery1.Parameters.Items[4].Value:=RnoEdt.Text;
DataModule1.ADOQuery1.Parameters.Items[5].Value:=
FormatDateTime('yyyy-mm-dd',RTimeP.DateTime);
DataModule1.ADOQuery1.Parameters.Items[6].Value:=RextraEdt.Text;
{***********************************************************************************
问题就在这里,Parameters.Items[6].Value 的值 总是乱码! 而RextraEdt.Text的值是正确的! 且只对汉语字符,如RextraEdt.Text 为:'我真的不知道这是为什么?'执行后总是没了几个字符 如'我是真的' 就没有后边的了! 我的后台数据库对应的数据类型为:Varchar(50)
**************************************************************************** *******}
DataModule1.ADOQuery1.Parameters.Items[7].Value:=RmnyEdt.Text;
DataModule1.ADOQuery1.Parameters.Items[8].Value:=RnumEdt.Text;
DataModule1.ADOQuery1.ExecSQL;
DataModule1.ADOQuery1.SQL.Add('begin tran');
DataModule1.ADOQuery1.SQL.Add('update allocated');
DataModule1.ADOQuery1.SQL.Add('set eqmtnum=eqmtnum-:eqmtnum');
DataModule1.ADOQuery1.SQL.Add('where eqmtno=:eqmtno and addressno=:adressno');
DataModule1.ADOQuery1.SQL.Add('insert into rpdeqmt ');
DataModule1.ADOQuery1.SQL.Add
('values(:adressno,:eqmtno,:rpdtime,:addition,:rpdprice,:num)');
DataModule1.ADOQuery1.SQL.Add('commit tran');
DataModule1.ADOQuery1.Parameters.Items[0].Value:=strtoint(RnumEdt.Text);
DataModule1.ADOQuery1.Parameters.Items[1].Value:=strtoint(RnoEdt.Text);
DataModule1.ADOQuery1.Parameters.Items[2].Value:=
DataModule1.ADOTable1.FieldValues['adressno']; DataModule1.ADOQuery1.Parameters.Items[3].Value:=
Copy(RadrsCMB.Text,0,pos (' ',RadrsCMB.Text));
DataModule1.ADOQuery1.Parameters.Items[4].Value:=RnoEdt.Text;
DataModule1.ADOQuery1.Parameters.Items[5].Value:=
FormatDateTime('yyyy-mm-dd',RTimeP.DateTime);
DataModule1.ADOQuery1.Parameters.Items[6].Value:=RextraEdt.Text;
{***********************************************************************************
问题就在这里,Parameters.Items[6].Value 的值 总是乱码! 而RextraEdt.Text的值是正确的! 且只对汉语字符,如RextraEdt.Text 为:'我真的不知道这是为什么?'执行后总是没了几个字符 如'我是真的' 就没有后边的了! 我的后台数据库对应的数据类型为:Varchar(50)
**************************************************************************** *******}
DataModule1.ADOQuery1.Parameters.Items[7].Value:=RmnyEdt.Text;
DataModule1.ADOQuery1.Parameters.Items[8].Value:=RnumEdt.Text;
DataModule1.ADOQuery1.ExecSQL;
解决方案 »
- 定时器定时不准
- delphi如何计算出一分钟中的最后一秒
- 如何用函数模拟鼠标左键的按下?
- TreeView的SaveToFile问题
- 如何在记事本内输入 '对号(指的是符号)'?
- delphi6中adoquery如何查询并修改记录?
- 我用clientdataset、ADO和SQL-SEVER数据库编写的主从关系数据表,不能用clientdataset1.delete删除主从表的记录,而ACCESS数据库却可以,请高手指教,如何设置或编写代码
- 在Delphi中怎模将ID与其NAME对应?
- 怎样写一句即返回记录数目又返回记录集的语句?
- 请问大侠们,TpageControl 怎么才能动态加 TAB啊?急!谢了!
- delphi 读XML文件的问题,100分
- Delphi如何判断excel表中定义的名称是否存在
function VarDataSize(const Value: OleVariant): Integer;
begin
if VarIsNull(Value) then
Result := -1
else if VarIsArray(Value) then
Result := VarArrayHighBound(Value, 1) + 1
else if TVarData(Value).VType = varOleStr then
begin
//Result := Length(PWideString(@TVarData(Value).VOleStr)^);改为下面这句
Result:=Length(Value);
if Result = 0 then
Result := -1;
end
else
Result := SizeOf(OleVariant);
end;可以把改过的文件手动加入到工程中,也可以复盖掉原来的文件,最好是把ADODB.DCU全部删除,再重编译改过后的ADODB.pas,要确保改过后ADODB.pas生效就行了
试试看
如果不行的话,看改成其它的方式试试
如:直接写SQL语句