如何强制Delphi的TADOConnection对命令使用ansistring?

时间:2019-04-14 07:47:40

标签: delphi ado delphi-10.3-rio ansistring delphi-unicode

通过ADO插入dbf文件时,编码存在问题。

Connecting string: 'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="dBASE IV";Data Source='+extractfilepath(ParamStr(0))+';'+
  'User ID=Admin;Password='

在插入命令中,我正在将数据转换为某些代码页,但在表中着陆的是不同的字节。可能是因为unicode字符串。

insert into someDBFFile (f1,f2,f3,f4,f5)
values(
'ATENEUM SPŁśKA Z OGRANICZONŹ ODPOWIEDZIALNOCIŹ S.K.A.  Wpisana w S†dz',
'ie rej.dla Krakowa-r˘dmiežcie Wydzia’ XI Gospodarczy',
'30-741',
'Krak˘w',
'Nad Drwin† 10, '
)

插入DBF之后的数据:

ATENEUMSPťKAZOGRANICZONŤODPOWIEDZIALNO?CIŤS.K.A. Wpisana wSĹdzierej.dla Krakowa-?rôdmie§cieWydzia的XI Gospodarczy
30-741克拉科夫
NadDrwinĹ10,

应与示例代码中相同:

'ATENEUMSPŁśKAZOGRANICZONŹODPOWIEDZIALNOCIŹS.K.A. Wpisana w S†dz', “即rej.dlaKrakowa-r˘dmiežcieWydzia XI Gospodarczy”, '30 -741', '克拉科夫', 'Nad Drwin†10,'

我尝试了TADOTable,结果相同。

tblZAEX.Insert;
 tblZAEX.FindField('NA1').AsAnsiString:=ToMazovia(Copy(TInvoiceHeaderPartiesSummaryB_Name.asansiString,1,70));
 tblZAEX.FindField('NA2').AsAnsiString:=ToMazovia(Copy(TInvoiceHeaderPartiesSummaryB_Name.asansiString,71,70));
 tblZAEX.Post;

0 个答案:

没有答案