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;
解决方案 »
- 有人用过paintbox画数据曲线吗?
- 调用数据放到哪个事件中好呢?
- delphi 网络程序 帮忙看下啦 怎么通过这个来推测发过来的数据包...
- 在ActiveForm中使用THTTPRIO时遇到的怪问题
- 这段代码为何不能打开我想打开的WORD文档呢?
- 冒帖子被转移之痛苦求助!分不够再加!!
- 请问:如何向文本文件中插入一条记录....在线等待,高分相赠
- 如何使一个COMBOX框,当按下某个键时,使下拉列表框出现,
- 有在Delphi6中安装过FormularOne6.1的大侠么?
- 如何将自己的文字提示加入到DBChart中去并可打印出来?
- 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语句