我使用Delphi/NexusDB和我建立SQL(約800字符長)在運行時,然後我通過它的nexusdb query.sql.text屬性來執行它,但我發現執行時出現無效令牌的錯誤。德爾福/查詢組件 - 分配一個長字符串(800字符)到sql.text屬性修剪SQL到326字符只有
我通過這樣的SQL
Query.SQL.Text := VarStrSQL; // <<---- string variable holding the SQL
當我跟蹤我發現在Query.SQL.Text SQL字符串被裁剪爲326字符! 雖然保存SQL的字符串變量是完整的,但是當我將該變量分配給query.sql.text時,只有326個字符通過了,當然這導致無效SQL語法的錯誤
請指出爲什麼SQL字符串像那樣修剪?
更新: * 我試圖memo1.lines.text:= VarStrSQL和備忘錄組件也顯示修剪字符串!!是否有可能在我的字符串中的一個字符導致!德爾福2010年導致TStrings修剪我的字符串的錯誤? *
感謝
'Query.SQL.Text:= VarStrSQL;'嘗試打破你的'VarStrSQL'成較小的部分,比如'Query.SQL.Text:= VarStrSQL1 + VarStrSQL2 + VarStrSQL3'然後嘗試運行。 – PresleyDias 2012-02-11 04:54:26
嘗試調試並查看SQL.Text分配發生時會發生什麼,我假定Query將事件分配給TStrings屬性,以便它可以處理您的SQL ...您可能想要執行類似於Query.SQL.Add ();幾次,看看結果... – ComputerSaysNo 2012-02-11 05:34:35
@PresleyDias你的建議不會有什麼區別。 – 2012-02-11 08:44:38