我有一個使用SAP的ActiveX SAPFunctionsDelphi SAP SAPFunctions DELIMITER忽然忽略?
var
TmpSAPFunctions: TSAPFunctions;
...
begin
...
TmpSAPFunctions.RemoveAll;
Funct:=TmpSAPFunctions.Add('RFC_READ_TABLE');
Funct.Exports('QUERY_TABLE').Value:='JEST';
Funct.Exports('DELIMITER').Value:=',';
然後我在2010年德爾福重新編譯應用程序中的舊Delphi應用程序,但一個奇怪的事情正在發生。我不再獲取數據逗號分隔CSV,而是數據似乎是FWV(固定寬度值)
我剛剛更新應用程序的其他部分,所以我不是那麼熟悉SAP編程,但它是我從搜索網絡的理解,CSV模式(使能分隔符)應該默認?
我不明白當目標/主機系統上的ActiveX是否相同時,從D6到2010的更改會有什麼不同。
可能是一個Unicode問題 - 貴TSAPFunctions包裝器包含字符串字段?如果是的話,你是否嘗試在你的包裝中用AnsiString替換字符串? –
我也想到了這一點,但由於數據被返回,只是沒有在CSV /分隔符模式下,我拒絕了這個想法。 TSapFunctions通過嚮導「導入組件」,「ActiveX」安裝到Delphi中。這會創建一個名爲 的單位SAPFunctionsOCX_TLB,它將WideString用於所有字符串。 – Tom
好的,當我選擇「,」它似乎使用的分隔符是「4」。如果我使用「;」使用的分隔符是「5」,回車變成「1」。花了一些時間才明白這一點,因爲我不習慣看SAP輸出,而且大部分返回的數據都是數字。 – Tom