R
renzhm
Unregistered / Unconfirmed
GUEST, unregistred user!
背景:D6 MSSQL 三层 Corba协议
使用OleVariant变量传递数组,若值为中文或空(null),则插入数据库后内容为乱码
两种情况:
1、若内容为null则插入数据库后内容为乱码
2、若为中文:
方式A:
Str:='begin
tran '+
'insert into table1(字段列) values(OleStr[1]...)'+
'if @@error rollback tran '+
'insert into table2(字段列) values(OleStr[1]...)'+
'if @@error rollback tran '+
'commit tran';
ADOQuery.Execsql;//关闭,清空,赋值我就不写了
这种方式没问题。
方式B:
Str:='begin
tran '+
'insert into table1(字段列) valuesName1,:Code1)'+
'if @@error rollback tran '+
'insert into table2(字段列) valuesName2,:Code2)'+
'if @@error rollback tran '+
'commit tran';
ADO参数赋值不写了,把OleStr[1]...赋给Name1,Code1...
ADOQuery.Execsql;//关闭,清空,赋值我就不写了
这种方式有问题,中文保存后为乱码。
请指教!
使用OleVariant变量传递数组,若值为中文或空(null),则插入数据库后内容为乱码
两种情况:
1、若内容为null则插入数据库后内容为乱码
2、若为中文:
方式A:
Str:='begin
tran '+
'insert into table1(字段列) values(OleStr[1]...)'+
'if @@error rollback tran '+
'insert into table2(字段列) values(OleStr[1]...)'+
'if @@error rollback tran '+
'commit tran';
ADOQuery.Execsql;//关闭,清空,赋值我就不写了
这种方式没问题。
方式B:
Str:='begin
tran '+
'insert into table1(字段列) valuesName1,:Code1)'+
'if @@error rollback tran '+
'insert into table2(字段列) valuesName2,:Code2)'+
'if @@error rollback tran '+
'commit tran';
ADO参数赋值不写了,把OleStr[1]...赋给Name1,Code1...
ADOQuery.Execsql;//关闭,清空,赋值我就不写了
这种方式有问题,中文保存后为乱码。
请指教!