Indy (Internet Direct)與Dbexpress在Delphi中是我最喜歡的技術類型。
今天來說說它的特色之一 -- Blocking
很多人都會很好奇,SocketServer和idTCPServer主要的差異在於一個預設為non-Blocking,另一個則是恆為Blocking,但這兩者之間有什麼樣的不同呢?
我不知道!(被毆)
2011/09/28
2011/09/15
DBX4MySQL - 極緻效能的 Dbexpress Driver
2011/09/14
特殊符號的英文單字
資料來源:身為一個專業的程式設計師需具備的基本知識(一)
/ Slash (斜線)
\ Backslash (反斜線)
~Tilde (取代符號)
@ At sign, at (At 符號,At)
# Poundsign (井字號)
$ Dollarsign (錢符號)
^ Caret (插入號)
& Ampersand (And 符號)
* Asterisk (星號)
[ Open bracket (左開式方括弧)
] Close bracket (右關式方括弧)
( Open parenthesis (左開式圓括號)
) Close parenthesis (右關式圓括號)
: Colon (冒號)
, Comma (逗號)
-- Double dash (雙破折號)
... Ellipsis (省略符號)
' Single quote (單引號)
" Quote (引號)
= Equals (等號)
+ Plus,plus sign (加,加號)
! Exclamation point (驚歎號)
> Greater than (大於)
< Less than (小於)
? Question mark (問號)
. Period,dot (句號,點)
; Semicolon (分號)
- Hyphen (連字號)
— Dash (破折號)
_ Underscore (底線)
| Vertical bar (垂直線)
{ Open brace (左開式大括號)
} Close brace (右關式大括號)
% Percent,percent sign (百分比,百分比符號)
// Double slash (雙斜線)
/ Slash (斜線)
\ Backslash (反斜線)
~Tilde (取代符號)
@ At sign, at (At 符號,At)
# Poundsign (井字號)
$ Dollarsign (錢符號)
^ Caret (插入號)
& Ampersand (And 符號)
* Asterisk (星號)
[ Open bracket (左開式方括弧)
] Close bracket (右關式方括弧)
( Open parenthesis (左開式圓括號)
) Close parenthesis (右關式圓括號)
: Colon (冒號)
, Comma (逗號)
-- Double dash (雙破折號)
... Ellipsis (省略符號)
' Single quote (單引號)
" Quote (引號)
= Equals (等號)
+ Plus,plus sign (加,加號)
! Exclamation point (驚歎號)
> Greater than (大於)
< Less than (小於)
? Question mark (問號)
. Period,dot (句號,點)
; Semicolon (分號)
- Hyphen (連字號)
— Dash (破折號)
_ Underscore (底線)
| Vertical bar (垂直線)
{ Open brace (左開式大括號)
} Close brace (右關式大括號)
% Percent,percent sign (百分比,百分比符號)
// Double slash (雙斜線)
2011/09/13
[轉]FLEX AIR 儲存路徑的三種選擇
資料來源:AIR 文件存储路径三种选择
1.File.desktopDirectory
路径参数:C:\Documents and Settings\当前用户名\桌面
file = File.desktopDirectory.resolvePath("HelloWorld.txt");
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path ";
stream.writeUTFBytes(str);
stream.close();
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path ";
stream.writeUTFBytes(str);
stream.close();
2.File.applicationStorageDirectory
路径参数:C:\Documents and Settings\当前用户名\Application Data\应用程序项目名\Local Store
var file:File = File.applicationStorageDirectory.resolvePath("HelloWorld.txt");
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path";
stream.writeUTFBytes(str);
stream.close();
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path";
stream.writeUTFBytes(str);
stream.close();
3.File.applicationStorageDirectory
路径参数:C:\Documents and Settings\当前用户名\My Documents
var file:File = File.documentsDirectory.resolvePath("HelloWorld.txt");
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path";
stream.writeUTFBytes(str);
stream.close();
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on AIR Save Path";
stream.writeUTFBytes(str);
stream.close();
2011/09/01
SQL Pretty Printer:好用的 SQL Formatter 工具
目前使用 SSMS,不論是2005還是2008,都沒有SQL Formatter功能,往往看到長得天荒地老的一行SQL,總是要費盡心力地來無盡的ENTER ENTER ENTER ENTER......
在網路上找了找,有個方便的工具:Instant SQL Formatter
線上格式化SQL工具,還蠻方便的,但並不支援UNICODE,所以出現非英文語時就會出現「???」,還真的是麻煩...
後來才發現,它有單機版本,名稱叫:SQL Pretty Printer
有提供 Desktop version, Add-In for SSMS, Add-In for VS or API
API就是利用網路連結到Instant SQL Formatter來處理。所以重點還是在前三項
因為我不只是用MS SQL,所以下載了Desktop Version來測試,以下就是展示畫面:
在網路上找了找,有個方便的工具:Instant SQL Formatter
線上格式化SQL工具,還蠻方便的,但並不支援UNICODE,所以出現非英文語時就會出現「???」,還真的是麻煩...
中文亂碼的畫面 |
有提供 Desktop version, Add-In for SSMS, Add-In for VS or API
API就是利用網路連結到Instant SQL Formatter來處理。所以重點還是在前三項
因為我不只是用MS SQL,所以下載了Desktop Version來測試,以下就是展示畫面:
未格式化時的SQL |
格式化後的SQL |
更棒的是,這個版本就支援UNICODE了!
工作上經常會先將 T-SQL 測到沒有問題後,再謄到 Delphi 中,此時會進行字串相加的串連工作,然而這工作如果文字少還算簡單,如果量大時,難免會出現漏打的情形,這時 SQL Pretty Printer 也支援 SQL 指令碼轉成其它如 C#、Pascal 相容的字串相加程式碼:
SQL Pretty Printer 有將 SQL 組成其它語言字串相加的功能 |
價格
SQL Pretty Printer 是付費軟體,一個LICENSE $50,但為你省下的時間絕對超過 $50 的價值!
向你推薦!
General SQL Parser for VCL 簡介
最近這一陣子大量在Delphi存取MS SQL,對於SQL指令的解析及輸入的繁瑣實在是頭痛。
比方說:
SELECT a.name,
b.id,
c.class
FROM a
JOIN b
ON a.name = b.name
AND a.money > 100
JOIN c
ON c.x > a.y
WHERE a.address NOT IN (SELECT *
FROM xtable
JOIN ytable
ON xtable.id <> ytable.id
這樣的語法,如果要輸入到Delphi裡,對coding人員來說,一定是場惡夢,更不要說那些複雜到見鬼的SQL指令了,所以我們常會這樣打:
str := 'SELECT A.NAME, B.ID, C.CLASS FROM A JOIN B ON A.NAME = B.NAME AND A.MONEY > 100 JOIN C ON C.X > A.Y WHERE A.ADDRESS NOT IN (SELECT * FROM XTABLE JOIN YTABLE ON XTABLE.ID <> YTABLE.ID'
中間完全不間斷………
要不就是認命地自己斷行,結果中間多打或少打一個字,也得等到執行時期才抓得到錯誤…
這時候就會覺得JQuery或LINQ真是好物啊!
在這邊介紹一個好物:General SQL Parser VCL Version
它算是一個外掛的CLASS,利用USES的方式引入到專案中即可使用
目前還在深入摸索中,所以我們先借用它內附的DEMO吧!
上面的畫面可以看到我們KEY入的SQL有錯誤,也很明白的指出是缺少了「)」
這時我們再補上後執行,就會出現正確的結果了
當然,不會只是滿足於現有的Check syntax,所以我們還可以使用pretty print!
另外,還可以編成各語言的傳入字串:
但是這套工具價值不斐
比方說:
SELECT a.name,
b.id,
c.class
FROM a
JOIN b
ON a.name = b.name
AND a.money > 100
JOIN c
ON c.x > a.y
WHERE a.address NOT IN (SELECT *
FROM xtable
JOIN ytable
ON xtable.id <> ytable.id
這樣的語法,如果要輸入到Delphi裡,對coding人員來說,一定是場惡夢,更不要說那些複雜到見鬼的SQL指令了,所以我們常會這樣打:
str := 'SELECT A.NAME, B.ID, C.CLASS FROM A JOIN B ON A.NAME = B.NAME AND A.MONEY > 100 JOIN C ON C.X > A.Y WHERE A.ADDRESS NOT IN (SELECT * FROM XTABLE JOIN YTABLE ON XTABLE.ID <> YTABLE.ID'
中間完全不間斷………
要不就是認命地自己斷行,結果中間多打或少打一個字,也得等到執行時期才抓得到錯誤…
這時候就會覺得JQuery或LINQ真是好物啊!
在這邊介紹一個好物:General SQL Parser VCL Version
它算是一個外掛的CLASS,利用USES的方式引入到專案中即可使用
目前還在深入摸索中,所以我們先借用它內附的DEMO吧!
咦!出錯了! |
這時我們再補上後執行,就會出現正確的結果了
正解! |
不只是單純的Memo,還可以搭配Rich Text |
剛剛的一行SQL轉成Delphi String型態,超方便! |
但是這套工具價值不斐
訂閱:
文章 (Atom)