關於符號轉字串問題 |
答題得分者是:P.D.
|
schang
一般會員 發表:7 回覆:6 積分:2 註冊:2018-09-05 發送簡訊給我 |
在程式裡寫 SQL 時,為了要顯示在 Memo 上方便查看,都會在每行的前面加上換行符號。
例如: [code delphi] sql := 'select * from TABLE' #13#10 'where COLUMN is not null ' #13#10 'order by COLUMN '; [/code] 但每次下中斷點在 Watch List 裡查看時,它會變成同一行,然後「#13#10」會變成「'#$D#$A'」。 例如:'select * from TABLE '#$D#$A' where COLUMN is not null '#$D#$A' order by COLUMN ' 請問要怎麼把他再用換行符號取代掉?方便我複製到記事本查看之類的。 例如變成這樣: select * from TABLE where COLUMN is not null order by COLUMN 我試著用 TStringList 的 Delimiter 來分解, 但我不知道完整得應該要怎麼寫,用 #39 或 Chr(39) 之類的都不行 >< |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
schang
一般會員 發表:7 回覆:6 積分:2 註冊:2018-09-05 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
對於一個很複雜組合性的sql, 通常我在設計時, 如果這個sql 是動態依不同條件產生的話, 我會在程式中放置個memo及button, 可以讓我隨時查看正確的語法, 方便debug, 除錯本來就是一個很累人的事, 我想這一點小事應該不會讓人覺得太麻煩的(相較於要除錯, 但語法要花更多時間去看來比較)
要不然你可以嘗試用 SQL.ADD('sql1 語法') 方式試試, 但你想分3段, 就要寫3次 SQL.ADD('sql語法2')..SQL.ADD('sql語法3'), 或許可以解決你的問題, 但不建議這樣做, 因為沒有效率
編輯記錄
P.D. 重新編輯於 2021-04-10 09:53:59, 註解 無‧
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
在 Delphi 程式中,您可以使用
TStringList 的 DelimitedText 屬性來將字串分解為多行,並使用換行符號進行連接。以下是一個範例程式碼:[code delphi] var sql: string; sqlList: TStringList; begin sql := 'select * from TABLE ' #13#10 'where COLUMN is not null ' #13#10 'order by COLUMN'; sqlList := TStringList.Create; try sqlList.Delimiter := #13#10; sqlList.DelimitedText := sql; // 輸出分解後的多行 SQL for sql in sqlList do ShowMessage(sql); // 可依需求修改為您想要顯示的方式,例如 Memo 等 finally sqlList.Free; end; end;
[/code] 在上述範例中,我們建立了一個 TStringList 物件 sqlList ,並將 DelimitedText 屬性設定為包含 SQL 語句的字串。透過將 Delimiter 屬性設為 #13#10 ,字串將被分解為多行,然後可以逐行進行處理。在範例程式碼中,我使用 ShowMessage 來顯示分解後的每一行 SQL。您可以根據需要修改為適合您的應用程式的方式,例如將每行 SQL 加入到 TMemo 控制項中。這樣,您就可以將 SQL 字串正確地分解為多行,並以易於閱讀的方式在您的應用程式中顯示出來。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |