發表文章

目前顯示的是 一月, 2013的文章

RainyMood 享受漫步在雨中、又不用全身濕透的浪漫,幫助你文思泉湧的雨聲產生器

SQL SERVER的全文檢索

取得所有檔案頪型的版本資訊方法

資料來源:DLL file version

function getFileVersionStr( const sgFileName : string ) : string; var infoSize: DWORD; var verBuf: pointer; var verSize: UINT; var wnd: UINT; var FixedFileInfo : PVSFixedFileInfo; begin infoSize := GetFileVersioninfoSize(PChar(sgFileName), wnd); result := ''; if infoSize <> 0 then begin GetMem(verBuf, infoSize); try if GetFileVersionInfo(PChar(sgFileName), wnd, infoSize, verBuf) then begin VerQueryValue(verBuf, '\', Pointer(FixedFileInfo), verSize); result := IntToStr(FixedFileInfo.dwFileVersionMS div $10000) + '.' + IntToStr(FixedFileInfo.dwFileVersionMS and $0FFFF) + '.' + IntToStr(FixedFileInfo.dwFileVersionLS div $10000) + '.' + IntToStr(FixedFileInfo.dwFileVersionLS and $0FFFF); end; finally FreeMem(verBuf); end; end; end; function getFileVersionInt( const sgFileName : string ) : Int…

Delphi unicode string VS memorystream

資料來源:
1. Wrtiting string to TMemoryStream - Pointer to string

2. 现有 Delphi 项目迁移到 Tiburon 中的注意事项

擴充的TStreamEx,在D7, Delphi XE下都可正確使用,只能說歪國人真是太厲害了,學習!

procedure TStreamEx.WriteString(const data: string); var len: cardinal; oString: UTF8String; begin oString := UTF8String(data); len := length(oString); self.WriteBuffer(len, 4); if len > 0 then self.WriteBuffer(oString[1], len); end; procedure TStreamEx.ReadString(const data: string); var len: cardinal; iString: UTF8String; begin self.ReadBuffer(len, 4); if len > 0 then begin SetLength(iString, len); self.ReadBuffer(iString[1], len); result := string(iString); end else result := ''; end;

Open Dbexpress 安裝中文說明

中文:
========
使用:
  一、移除舊版的Package(PkgDbxXXDrv{%Delphi版本號%}.bpl),並且移除舊版的搜尋路徑

  二、安裝新的Package到IDE中,路徑如下:
        dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*.bpl
      or
        dbxoodbc\lib\{%Delphi版本號%}\dbxoodbc*_emb.bpl
      ※第二個版本在輸出時不需要外部的「dbxoodbc.dll」

  三、複製"dbxoodbc\lib\dbxoodbc_driver\(%Platform%)\release\*dbxoodbc*"目錄下所有的檔案到系統目錄
      (例如:{%DELPHI}\Bin)

  四、把模組加入到你的專案中,例如:
      uses
        ..., DbxXXDrv;

      而下面的方式可以在輸出的時候不需要額外的「dbxoodbc.dll」
      uses
        ..., DbxOpenOdbcStatic;

如果你使用這套Driver時有問題,可以參照下列的方式進行檢查或故障排除

一、加入下列模組到你的專案,它可以讓你進入DbxOpenOdbc.pas進行Debug工作
    uses
      ..., DbxOpenOdbcStatic, DbxXXDrv;

二、如果 DbxOpenOdbc.pas 無法解決你的問題,你必須再深入到
      日誌模式(mode of journalizing)

三、要開啟日誌模式,你必須編輯「DbxOpenOdbc_options.inc」單元
    並將 {$DEFINE _DEBUG_} 和 {$DEFINE _TRACE_CALLS_} 開啟
    然後將 {.$DEFINE _RELEASE_} 關閉
    最後,重新編譯你的專案或 OpenODBC 驅動

四、偵錯訊息將會在Delphi IDE裡的EventLog視窗顯示,但只能在開發環境中運行
    其它的偵錯方式可使用「Debug View」,詳見:
    http://technet.microsoft.com/en-us/sysinternals/bb896647
    想更進一步偵錯可參考「DbxOpenOd…