發表文章

目前顯示的是 2012的文章

Delphi 的 ERROR Insight = 一堆bug...

圖片

PostgreSQL with Xampp

資料來源:PostgreSQL with Xampp


經測試後可用,且相當實用的教學。

[轉] Delphi XE Refactor 重構功能簡單說明

Delphi XE Refactor重构功能简单说明 節錄部份說明如下:

1. Rename: 包括重命名变量,函数名,组件名等等。好处是它会把整个项目里所有引用的地方都自动修改!经常碰到名字起的不好或者不一致的,想要修改又嫌麻烦,现在省事多了。

2. Declare Variable,Declare Field: 自动声明,举个例子: for i:=0 to TmpList.Count-1 do begin ...end; 如果变量i没有声明,可以用这个功能加个声明。麻烦的是会弹出对话框让自己选变量类型,并没有节省太多时间

3. Extract Method: 提取方法。这个也很实用,举个例子:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Caption := 'This is a Test';
  Button1.Enabled := false;
end;

我们经常会在form的create事件里做很多的初始化操作,有时候发现这些初始化操作需要重复执行,选中要提取的代码,选择Extract Method,指定方法名为InitScreen,如下:


procedure TForm1.FormCreate(Sender: TObject);
begin
  InitScreen;
end;

procedure TForm1.InitScreen;
begin
  Form1.Caption := 'This is a Test';
  Button1.Enabled := false;
end;

如果提取的代码中引用了本地变量,会自动给新方法加上引用声明。不过,如果提取的代码过于复杂的时候有时会出错,需要自己手工修改。

4. Extract Resource String: 把一个字符串声明称resourcestring类型的常量,目前没发现有什么用处

5. Change Params: 修改函数参数,很不实用的功能

6. Find Unit: 查找类所在的单元,这个功能本来应该很有用,比如你在网上拷贝了一段代码,结果编译提示你找不到某个类型,用这个功能,输入类名,就可以告诉你在哪个单元里,并自动加到Interface或…

自由倉頡真的好用

資料來源:Windows all x86/x64 倉頡輸入法(自由倉頡(轉載)+自製第五代碼表)第五代碼表可採用"倉頡平台"的字碼表終於有套符合TSF又支援第五代倉頡的免費輸入法了!萬用字元*,用於模糊查找很好用
微軟倉是「難」鍵
自由倉是「:」鍵(沒錯,就是Shift + :)中英切換
微軟倉是「Shift」
自由倉是「Shift + Backspace」有些地方的切換反倒是不太習慣。
參考資料:《自由倉頡輸入法》常用熱鍵2015/08/03 更新
由於在win7上的skype上聊天一陣子後,會造成軟體崩潰,最終還是放棄使用自由倉頡。另一套「小小輸入法」平台則是在 PowerPoint 2010 輸入時一定會使 Powerpoint崩潰,故也無法使用。目前,我使用的是 GCIN輸入法平台,在經過調整後,已經和微軟倉頡十分接近。只是對win 8.1 以上的版本相容性還沒跟上。GCIN是一套值得關注的好輸入法!

幾種提昇 MDAC 應用程式效能的方法

資料來源:http://www.reocities.com/huanlin_tsai/faq/n012.txt

1.在記錄的迴圈當中使用預先連結的欄位物件

  參考下面的範例:

  procedure TForm1.Button1Click(Sender: TObject);
  var
    fldID, fldName, fldAge: TField;
  begin
    fldID := ADODataSet1.FieldByName('ID');
    fldName := ADODataSet1.FieldByName('Name');
    fldAge := ADODataSet1.FieldByName('Age');
    ADODataSet1.First;
    while not ADODataSet1.Eof do
    begin
      writeln(fldID.AsString);
      writeln(fldName.AsString);
      writeln(fldAge.AsString);
      ADODataSet1.Next;
    end;
    ADODataSet1.Close;
  end;

2.除非必要,否則不要使用 cursor-based 的方式更新資料

  雖然使用 SQL 命令來更新資料在某些情況下並不適合,你還是應該盡量
  使用這種方式,經由 recordset 物件 (TADODataSet 及其後代) 來更新
  資料雖然方便,但所必須付出的代價也較大,儘管 SQL 命令比較難以使
  用,但是絕對值得。

3.使用帶輸出參數的預儲程序取代只傳回一筆記錄的 Select 敘述

  當你知道 query 傳回的結果集只有一筆記錄時,你可以使用帶輸出參數
  的預儲程序取代開啟一個 recordset。
  當你開啟一個 recordset 時,傳回的結果集包含了資料以及 metadata
  ,通常 metadata 的資料量蠻大的,所以你可能會想用一個帶輸出參數
  的預儲程序。

  Sub SingletonSp()

    Dim cmd As New Command

    cmd.ActiveCon…

关于在DELPHI6中使用正则表达式的一些心得

转载地址:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=25712
http://blog.csdn.net/senfore/article/details/2154944

一. 工具选择

DELPHI6本身没有处理正则表达式的库,只能找第三方库。在选择方面,我的标准是:

1. 不必向开发环境注册控件
2. 接口简单
3. 符合主流的perl式正则语法
4. 专业,至少应该有个看上去专业的专门网站
5. 免费

目前符合以上标准, 比较好的RegEx类库有TRegExpr ( http://www.regexpstudio.com/ )与PerlRegEx ( http://www.regular-expressions.info/ )。

TRegExpr 是俄国人做的RE类库,应该说是目前国内最主流的免费RegEx类库了。纯DELPHI写成,支持中文,可以选择安装为开发环境控件,也可直接作为类库单 元使用(只有一个主类,一个pas文件)。美中不足是自从2004年后就没有更新了,版本一直是0.9xxx,就是不上1。而且不支持 Lookaround语法(前瞻与回溯功能)

PerlRegEx底层是用C的类库,完全符合PCRE标准(兼容Perl的正则表达式)。 文件结构比TRegExpr复杂一点,包括一个放底层obj文件的子目录和两个接口.pas文件,实际使用时只需要向项目中添加一个单元(当然也可以注册 成为控件)。之前的版本据说对中文支持不够,最新版本我在中文环境下用倒没遇到什么问题。说明文档也声称支持Unicode。

现在我是常 备两个这两个类库,但主要还是用PerlRegEx。除了迷信最后更新日期与C的执行效率外。还看中了RegexRubby这个基于同一套C类库的 RegEx编写工具,以及PerlRegEx提供了一个study方法,声称可以对正则式做点前期编译,提高执行效率。

=========================================================================
二 使用方法:

解 压了PerlRegEx包后,如果不想注册控件,除了PerlRegEx.pas、CHelpers.pas和PCRE目录外,其他的东西可以建个隐藏目 录搁置起来(没认真阅读用…

DBGrid繪圖上的一個小Bug

在Delphi 2010之後,DBGrid多了一個Drawing Style屬性,可以讓我們DBGrid更為漂亮

但不知怎麼的,常常在使用上見到「殘影」,難道Delphi改走武術路線不成?

當然不是,這是DBGrid的一個Bug

一直到XE3(2013)為止,這個Bug一直沒有解決

於是國外有人修改了VCL Source來解決這個問題

這邊轉貼他的Fix法:

建立專屬於你的檔案型資料庫 - 使用Delphi

圖片
原來也可以這樣使用File I/O型資料庫
真是極簡至極

詳見:Create Your Own Database Using Delphi's "File Of" Typed Files

Delphi/BCB檔案名稱的處理函式整理

圖片
底下的網址有詳盡的介紹

這樣就可以少嗑些code了吧!哈哈!

資料網址:File Name Utilities

除了整理之外,還有範例碼!

一個字:讚!


Delphi裡面常看到的#$D#$A是什麼意思咧?

#$D#$A = CRLF = #13#10 = char(13)+char(10)

Chrome套件介紹-Webpage Screenshot 網頁快照

圖片
當你看到某個網頁很不錯想抓圖下來留念,或者希望能將網頁上的訊息抓圖保存下來,留待日後當做證據或其他備份用途,可以試試看用下面的網頁抓圖軟體來抓圖。

Webpage Screenshot是個Gooogle Chrome瀏覽器的擴充套件,可以安裝在4.x以上版本的瀏覽器,內建繁體中文語系。可以將目前看到的可視範圍內的網頁畫面抓圖下來,存成JPG圖檔,也可將整個網頁從上到下、完整的抓圖下來,整個操作相當簡單。

詳見:重灌狂人-「網頁快照」支援自動捲頁、將網頁全文抓圖存檔(Google Chrome套件)


DataSetProvider.ResolveToDataSet

DataSetProvider.ResolveToDataSet=false时
代表DataSetProvider自动产生更新数据的Sql叙述用于更新数据库。
DataSetProvider.ResolveToDataSet=true时
代表通过DataSetProvider连接的Query来更新数据。


資料來源
关于用query 作为数据集更新数据和DataSetProvider.ResolveToDataSet的关系

IdHTTP post 数据的问题

Delphi 的 ActiveX Form 相關筆記(未整理)

delphi 2009 创建OCX 与JS传参例子
delphi 2009 ActiveX控件 常见问题
盒子-ActiveFormX WebDeploy IDE菜單 盒子-Delphi7 中修複 ActiveFormX 發布 BUG 版2
delphi7 开发ActiveX的学习备忘

Delphi7 BUG Web Deployment Options呈灰色的解决 这是d7的bug,处理方法很简单

每次打开工程后,新建一个ActiveForm页,然后再从工程中删除,再到type   library中删掉相应的内容就可以使用deploy了。 

另一个解决办法,你可以打开".DOF"文件进行手工修改下面单元:

[Deployment]
DeployDir=d:\
DeployURL=d:\
HTMLDir=d:\
CABCompress=0
CodeSign=0
IncludeVerInfo=1
AutoIncRelease=0
DeployPackages=1
DeployFiles=0
CompanyURL=
Description=
CredFile=
PrivKey=
CryptoType=0
Timestamping=0
TimestampServer=

AutoUpdate unit for Delphi/Indy

使用Delphi做自動更新的一個參考方案

AutoUpdate unit for Delphi/Indy

C++ Builder的TDataSet存取Text、Image及Memo欄位的方式

对于SQL中的TEXT、IMAGE、MEMO字段的存取,可以采用下列程序:

/* BLOB字段的读取: */ TBlobSTream* TemplateStream; char* TempPlatePtr; TemplateStream = new TBlobStream((TBlobField*)WebQuery->FieldByName("SearchTem"),bmReadWrite); TemplatePtr = new char[TemplateStream->Size]; TemplateStream->Read(TemplatePtr, TemplateStream->Size); /* BLOB字段的写入:*/ TBlobSTream* TemplateStream; char* TempPlatePtr; TemplateStream = new TBlobStream((TBlobField*)WebQuery->FieldByName("SearchTem"),bmReadWrite); TemplatePtr = new char[TemplateStream->Size]; TemplateStream->Write(TemplatePtr, TemplateStream->Size);
________________________________________________________________
补充:
获得字段的大小用函数datalength

Flex / Flash Builder 相關資源 (未整理)

NativeExcel - Delphi操作Excel的好朋友

圖片
官方網站:Nika Soft
Delphi內附的Excel元件真的是爆難用的,Obj的方式在Debug上也是痛苦,NikaSoft公司的NativeExcel產品就是以OleObject為基底下,再對它進行封裝。
非常好使的一套元件!

唯一可惜的是,並沒有提供C++ Builder的支援。
但是真的很好用!值得一推!

學DBX和DataSnap不可不學的好朋友 - TClientDataSet

圖片
在 About.Com Delphi 裡面有一篇關於 TClientDataSet 的專欄:
A Guide to Using the TClientDataSet in Delphi applications

如果沒有買到Delphi in Depth: ClientDataSet的人,可千萬不要再錯過這篇專欄哦!

在Blogger裡面使用Syntax Highlight V3.0

圖片
Syntax Highlight V3.0後,Delphi, C++等語法並不能在Blogger正確被載入

Google後才找到這篇:
How To Add Syntax Highlighter (V3) To Blogger?

節錄內容如下:

Select the theme of your highlighter,you can see demo of theme here.Then select the brushes which you wantClick on the Get Code buttonCopy all the code from the text areaNow go to your templateFind for Add copied code just above it, tag in your template
這個網站很貼心的在底下寫了指令碼生成器,按照你需要的語法自動產生,之後再按上述的步驟修改Blogger範本,就可以開心使用囉!

基礎課程 - Delphi Interceptor Classes

圖片
利用 「Class 攔截器(Interceptor Classes)」 就可以不需要寫大量的繼承指令碼了

實戰中有時也會遇到,比方說像 TMaskEdit 的 ValidateError 事件的覆寫

有關 SQL Server 的 Cursor + T-SQL's Dynamic create SQL

圖片
資料指標(CURSOR)Execute Dynamic SQL commands in SQL Server原來T-SQL也有像Delphi一樣的動態產生SQL功能
讚讚

如何改變 TPageControl 的 Tab Title Font + BG Color

圖片
文章來源:tabsheet フォン変更   by www

雖然是日文的內容,可是還蠻容易理解的
此外,Delphi7裡面的PageControl在Win7 64bit下有bug 當設定 OwnerDraw 時,Tab Title及OnDrawTab會無功能,在文末有解決方法!

以下是節錄內容:

自製類 measureText 方法 - 使用 Delphi / C++ Builder

在 JavaScript 裡面有一個好用的函式:measureText
可以利用它查出 Text string 的 PX 單位寬度和高度

雖然在 Delphi 似乎不太需要用到這項功能,因為物件本身都已經有 width 和 height 屬性了

不過無聊的時候還是可以玩玩 px / width 的單位轉換

GetTextPxWidth / GetTextPxHeight 函式是參考 How to get TextWidth of string (without Canvas)?

不囉嗦了,直接來看 code 吧!

FastReport 的 Variables 和 Script Variables

圖片
Variables 可在 Design 上看到變數
Script Variables 則看不到

Design script裡面使用上
是直接使用,例如:

Script Variables :
========
Delphi:
frxReport.Script.Varialbes['XXX'] := 'XYZ';

FR Design
ShowMessage(XXX);  // 雖然看不到,但可以直接使用
========

 Variables:
========
Delphi:
frxReport.Varialbes['XXX'] := '''XYZ''';

FR Design
ShowMessage(<XXX>);  // 在Design Manager可以看到,但設定和呼叫上就比較麻煩
========


參考來源:
Script variablesFastReport 4 Programmer's manualWhy is Fast Report VCL in Delphi raising a stack overflow exception when editing a variable?










FastReport4.x 在 XE XE2 下編譯失敗的問題

圖片
如果是買FastReport正式版的使用者,可能會遇到FastReport 4.x的Source編譯失敗的情況

其實是因為XE2它為了與FireMonkey相容的關係

所以會把uses的位置做了一些修改

Indy10 IdHTTP對非英文語的處理方式(泛中文處理)

圖片
這陣子想從網路上下載一些文件,URL大致上像下面這句:

「sUrl := http://www.DelphiCpp.com/我愛Delphi.txt」

使用 IdHTTP.Get(sUrl, ms) 方法卻怎麼也抓不到,可是也沒有Exception…

李組長眉頭一皺,發現案情並不單純。

於是請了Google大神拜了一下,也發現不少災情。

请问Delphi7怎么解决Indy发送中文字符的问题
Thread: IdHTTP and æøå ??

發現共通點都是靠「TIdTextEncoding」來解決問題
所以原先的作法就修改成這樣:

新書推薦 - Delphi XE2 Foundations (Delphi XE2 基礎)

以下是原文介紹
======================
Provides a comprehensive guide to the language and core non-visual libraries of Embarcadero Delphi XE2,
from basic language syntax to multithreading.

Adopting an integrated approach, the book covers both newer and older features alongside one another;
while it won't teach you how to program, it assumes little Delphi knowledge specifically.

Includes coverage of XE2's support for Mac OS X.

(Edition note: the printed version combines the three parts of the eBook version, which is available separately.)

如果手上有Kindle的人也可以考慮買Kindle Edition

不知道怎麼買的人也可以到這裡購買

天瓏

Amazon Delphi XE2 Foundations part1 for Kindle Edition

GridView「新增」功能破解完整攻略

GridView「新增」功能破解完整攻略

相當有內涵的一篇內容

又上了一課

IE Table 專用的 "bordercolordark" 和 "bordercolorlight"

參考了以下的網頁:
http://w3help.org/zh-cn/causes/BT3003
http://help.dottoro.com/lhcrketd.php

知道這兩個屬性是IE專用的屬性,微軟也說不要再用它了,但卻也沒提到如何解決。

所以參考了 Dorroto 網頁的寫法:
// top right bottom left // blue cyan cyan blue <tablestyle="border:4px solid; border-color:#0000FF #00ffff #00ffff #0000FF;"><tr><tdonclick="ChangeBorder ();">Click this text!</td></tr></table>

border-color 的配置順序是:上 左 下 右
所以要達成配色的話會是:色1 色2 色2 色1

但TD標籤並不會影響,那怎麼辦呢?

所以還需要再加上

<td style="border-color:#00FFFF #0000FF #0000FF #00FFFF;">Click this text!</td> 也就是反過來:色2 色1 色1 色2

[轉]SQL SERVER 2000 事件探查器无法暂停及停止的解决办法

http://servicehome.ufida.com.cn/space/viewspacepost.aspx?postid=387
http://www.zu14.cn/2010/06/29/sql-server-profiler-can-not-stop-or-pause/

SQL SERVER事件探查器虽好用,可有的服务器上会出现针对本地数据库(local)启动事件探查器后无法暂停及停止的问题(一旦暂停或停止就长时间没响 应),出现这个问题主要原因是由于事件探查器默认使用安装SQL SERVER时记录下来的本地计算机名来访问本地数据库,一旦安装SQL SERVER后修改了计算机名,就会出现事件探查器能启动不能停止的问题。

   治标的解决办法:使用计算机名或IP来使用事件探查器连接数据库,而非用(local),则能正常暂停及停止了。

   治本的解决办法:更新SQL SERVER中记录的计算机名。打开master数据库的sysservers表,修改srvname字段及datasource字段为当前计算机名(由 于是系统表,默认不允许修改,所以修改前需要先进行设置:在企业管理器中的(local)节点点鼠标右键,“属性”-“服务器设置”,勾选“服务器行为”中的“允许对系统目录直接进行修改”)。

ProcessInfo 1.5 is released with Win64 support

想取得程序的Handle等其它資訊還蠻好用的

ProcessInfo 1.5 is released with Win64 supportPosted on September 12th, 2011Ali Keshavarz5 comments ProcessInfo 1.5 is released. The changes in this release are:
Added support for Win64 and Delphi XE2. Added TProcessItem.CloseProcess method to close a process normally (not forcefully). Added TProcessItem.CurrentProcess property. This property always refers to the current process in the list of running processes.Added PrivateWorkingSetSize property to TProcessItem.MemoryInfo. Added global  ProcessInformation function. This function returns a global instance of TProcessInfo. The instance will be freed when the application is terminating. Fixed a few minor bugs. To download ProcessInfo 1.5, please go to ProcessInfo page.


SQL Server月份相減跨年度的計算方法

SET @YY='2012'
SET @MM='03'
SET @MM=@MM - 5

  IF @MM <= 0
  BEGIN
      SET @YY=@YY - 1
      SET @MM=@MM + 12
  END

雖然好像有更好的作法,但找到之前還是將就點吧

Open dbExpress 安裝

圖片
http://sourceforge.net/projects/open-dbexpress/files/dbxoodbc%202012%20-%20dbx%20ODBC%20driver/dbxoodbc_3_2012_0716dev.7z/download

一、首先是先安裝bpl到RAD Studio裡面
dbxoodbc\lib\{%DelphiVersion%}\dbxoodbc*.bpl
以XE2來看的話,就會是在「dbxoodbc\lib\delphi-2012(16)XE2\win32」(32bit)目錄裡面

二、接下來再把dbxoodbc\lib\dbxoodbc_driver\(%Platform%)\release目錄裡的相關檔案複製到系統路徑
以Win32系統為例,就是把「dbxoodbc\lib\dbxoodbc_driver\win32\release」複製到Delphi安裝目錄裡的bin資料夾下,也就是「{%DELPHI}\Bin」

三、接下來是要註冊 dbxconnections.ini 及 dbxdrivers.ini
說真的,這兩個檔案不是放在特定資料夾中,常常會找不到它們
以我的XE2為例,它們是放置在「c:\users\public\documents\RAD Studio\dbExpress\9.0」目錄中,如果你的電腦沒有的話,可以在底下的機碼中尋找「[HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\DBExpress」

台灣大多數的人都是用SQL Server,所以我們就以它的設定為範本:
===dbxconnections.ini===
;--------------------------------------------------------------------------------------------------
[dbxoodbc_SS_DirectMode]
DriverName=DbxSQLServer
GetDriverFunc=getSQLDriverODBCW
VendorLib=sqlsrv32.dll;sqlncli10.dll;sqlncli.dll;odbc32.dll
Trusted_Connection=No
User_Name=…

[轉]Delphi实现Js中的Eval函数

原文網址:Delphi实现Js中的Eval函数



procedure Eval(Formula: string; { 要計算的表達式 } var Value: Real; { 返回數值 } var ErrPos: Integer); { 錯誤信息 } const Digit: set of Char = ['0'..'9']; var Posn: Integer; { 算式當前位置 } CurrChar: Char; { 算式當前字符 } procedure ParseNext; begin repeat Posn := Posn + 1; if Posn <= Length(Formula) then CurrChar := Formula[Posn] else CurrChar := ^M; until CurrChar <> ' '; end { ParseNext }; function add_subt: Real; var E: Real; Opr: Char; function mult_DIV: Real; var S: Real; Opr: Char; function Power: Real; var T: Real; function SignedOp: Real; function UnsignedOp: Real; type StdFunc = (fabs, fsqrt, fsqr, fsin, fcos, farctan, fln, flog, fexp, ffact); StdFuncList = array[StdFunc] of string[6]; const StdFuncName: StdFuncList =…

[轉]Iterator in Delphi

原文網扯:Iterator in Delphi

有空可以來試試 ^ ^

Variant function: VarIsEmpty VS VarIsNULL

unassined :
if Not VarIsEmpty( DeltaDs.Fields[i].NewValue ) then ...
NULL :
if Not VarIsNULL( DeltaDs.Fields[i].NewValue ) then ...
資料來源:http://www.sql.ru/forum/actualthread.aspx?tid=329100

使用 OLE 開啟 Excel 的小陷井

從MSDN上看到Workbook.Open函式是這樣寫的:
Workbook Open( [In] string Filename, [In, Optional] object UpdateLinks, [In, Optional] object ReadOnly, [In, Optional] object Format, [In, Optional] object Password, [In, Optional] object WriteResPassword, [In, Optional] object IgnoreReadOnlyRecommended, [In, Optional] object Origin, [In, Optional] object Delimiter, [In, Optional] object Editable, [In, Optional] object Notify, [In, Optional] object Converter, [In, Optional] object AddToMru, [In, Optional] object Local, [In, Optional] object CorruptLoad );

一票網站在抄來抄去,除了第一個參數是Filename不變外,其它不是都沒給值,就是直接給EmptyParam

ADO的SQLMonitor實作 -- ADOMonitor

Build your own profiler using ADO

相當有意思的文章內容,下次再來試試

Create DBDEMOS from BDE into PostgreSQL

圖片
BDE have a demo database: DBDEMOS.

But, dbExpress is not easy a demo database, so I just to create a sample program.

I used:
1. Devart dbExpress for PostgreSQL
2. Delphi XE
3. BDE + Paradox database

Below my example picture:
First, I select our db data (C:\Program Files (x86)\Common Files\CodeGear Shared\Data; C:\Program Files (x86)\Common Files\Borland Shared\Data), when we get all xml's db file(same Paradox format) on the folder.

Then we can to click "Create SQL". Create SQL Statement when after copy to pgAdmin run it.
Or to use "Create Table" direct to create table.

Setting PostgreSQL's login param.

Final, click "Import Postgres", The data pump will all data append from xml into PostgreSQL.

Now, we can try dbexpress framework for PostgreSQL!
Download this demo

[轉]Fixing TCriticalSection

TCriticalSection (along with TMonitor*) suffers from a severe design flaw in which entering/leaving different TCriticalSection instances can end up serializing your threads, and the whole can even end up performing worse than if your threads had been serialized. This is because it’s a small, dynamically allocated object, so several TCriticalSection instances can end up in the same CPU cache line, and when that happens, you’ll have cache conflicts aplenty between the cores running the threads. How severe can that be? Well, it depends on how many cores you have, but the more cores you have, the more severe it can get. On a quad core, a bad case of contention can easily result in a 200% slowdown on top of the serialization. And it won’t always be reproducible, since it’s related to dynamic memory allocation. There is thankfully a simple fix for that, use TFixedCriticalSection: type TFixedCriticalSection = class(TCriticalSection) private FDummy : array [0..95] of Byte…

High Five - SQL Complete 介紹

圖片
還記得之前介紹過的「SQL Pretty Printer:好用的 SQL Formatter 工具」嗎?

這次來介紹 DBA 的好朋友 - Devart 公司所出品的「SQL Complete」

What is SQL Comlete?
Devart的Demo圖片已經完整呈現這款工具的概念了!
簡單的說,就是自動完成的工具

當然還有更多額外的工具

我們先來看與SQL Pretty Printer比較吧:
參賽者 SQL Complete
(Express Version) SQL Pretty Printer 智慧感知功能 Smart Intellisense V X 提供表格物件名稱
Name suggestions for major objects V X 提供函式名稱
Name suggestions for advanced objects 部份提供
Partial Support X