維's profileIT : 是工作還是嗜好?PhotosBlogListsMore Tools Help

Blog


    April 28

    也許我不應該說的!

    自從不再是CG的正式員工之後,我也必須申請參加CG產品的Beta,獲得批准之後我才能拿到Beta的產品來測試。因此前一陣子我也和一些我的朋友一樣申請參加下一版C++Builder/Delphi的Beta,很幸運的我獲得了許可,也終於在最近拿到了Beta版來玩一玩,以便填補一下Diablo 3出來之前苦苦等待的真空時期。

    下一版的C++Builder/Delphi在進行Beta測試早已不是新聞了,因為Delphi的產品經理Nick已經公開的討論了許多次,CG現在也在她的網站上公開歡迎有興趣的人申請參加,申請的URL如下:
    https://beta.embarcadero.com/callout/default.html?callid={56DB5BD1-6DD9-40EF-8743-7C3E293085E9}

    事實上我也是在上述的URL中申請參加的。
    那麼這篇文章到底是討論呢? OK,除了我希望把申請參加Beta的資訊和尚不知道的朋友分享之外,主要的原因就是我有許多已經參加Beta的朋友在測試新版Delphi時發現他們無法在XP下連結到MS SQL Server 2005或是2008,一旦新版Delphi在XP下試著連結2005或是2008時就會出現代號為340的錯誤:
     

    我也在大陸的一些網站上看到許多人就開始批評下一版Delphi的DBX驅動程式有大臭蟲,又不穩定,連MS SQL Server都連不上,但我覺得很奇怪的是既然現在是Beta版那當然有臭蟲,否則進行Beta測試是做什麼的呢?不過我想說的是這個340錯誤並不是DBX的臭蟲,而是我的朋友們並不瞭解新的DBX對於MS SQL Server的驅動程式進行了大幅的改變,因此在使用下一版Delphi連結MS SQL Server 2005/2008之前,開發人員需要安裝一個軟體。那麼是什麼軟體呢? 在回答之前,我想順便談談如何進行有效的Beta測試並且以這個例子做為說明,一旦讀者掌握了之後就做個更好的Beta測試人員了。

    事實上在我朋友告訴我並且詢問我這個問題之後,我也親自測試了一下,我果然也是遇到錯誤340,無法連結MS SQL Server 2005,但在我確定它是DBX的臭蟲之前,我決定再啟動RAD Studio 2007看看有什麼不同,結果我發現在RAD Studio 2007中,DBX4是使用oledb用戶端函式庫來連結MS SQL Server,如下所示:

     
    但是在下一版Delphi中卻改變了使用的用戶端函式庫,DBX4改用了sqlncli10.dll,如下所示:
     
    而sqlncli10.dll是MS SQL Server 2008的原生用戶端程式(Native Client),而這也就是為什麼會出現340錯誤的原因,因為在下一版Delphi的DBX是改用了Native Client來連結MS SQL Server而不再使用oledb,出現340錯誤是因為我們的機器中沒有安裝MS SQL Server 2008的原生用戶端程式的原因。

    因此,我到下列的URL中下載MS SQL Server 2008的原生用戶端程式:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en

    下載Microsoft SQL Server 2008原生用戶端安裝程式 : sqlncli.msi並且安裝它之後,就可以使用下一版Delphi來連結MS SQL Server 2005/2008了,也不會再出現340的錯誤了。

    從上面的討論我們可以推論出下一版Delphi的DBX對於MS SQL Serevr有如下的特性:
    • 它支援最新的MS SQL Server 2008,因此理論上應該支援SQL 2008新的資料型態和功能
    • 由於它使用MS SQL Server 2008原生用戶端安裝程式來連結MS SQL Server 2008,因此它可向後支援MS SQL Server 2005
    • 使用sqlncli10.dll而不再使用oledb,因此下一版的DBX速度會比以前更快

    嗯, 推論了上述3點之後我更喜歡新的DBX了。

    Comments (15)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    維 李wrote:
    >我也很喜歡DBX的技術+應用,雖然能力還是很淺寫了一點點有關DBX的使用心得 http://grandruru.blogspot.com/

    已經去看過了,加油,keep the good job going on.
    May 8
    RUwrote:
    我也很喜歡DBX的技術+應用,雖然能力還是很淺
    寫了一點點有關DBX的使用心得
    http://grandruru.blogspot.com/

    還請李老師有空逛逛,看看那些文章有沒有誤人子弟的嫌疑,哈!
    謝謝了!
    May 5
    維 李wrote:
    >对企业需求千变万化的环境,对开发、管理的灵活、易用及效率,我们选择了MSSQL

    Delphi 現在的版本是使用oledb, ole也只能執行在Window上無法執行在Linux中, 因此即使下一版的Delphi不改用原生客戶端也會有一樣的問題, 先想想你為什麼要使用跨平台的Delphi?

    下一版的Delphi用原生客戶端是因為MS對oledb已經沒有再維護了, 要使用新的MS SQL Serevr 2008的data type和新功能就只能走原生客戶端, 而且DBX使用原生客戶端就不需要付出ole automation的overhead, 可以兼具功能和效率的好處.
    Apr. 30
    生 刘wrote:
    " MS SQL Sever只能跑在Window上, 如果Delphi推出跨平台的版本, 那麼我想主要使用的資料庫應該是Interbase, MySQL, Oracle等吧, 到了Linux上為什麼還要使用MS SQL?"
    一个企业的需求是多方面的,而且还有历史,多年的WIN系统应用难道一下子就变魔术地变为LINUX了?
    要考虑转LINUX,对更多的企业来说,没有无缝迁移<或较少迁移工作>是很难的
    难道要把所有系统都重新开发、测试一遍??
    即使是WIN 7出来,MS还要搞个XP兼容模式,这是客户需求!更别说由WIN转向LINUX了
    也许LINUX/ORACLE/MySQL有无数优点、技术无比的牛。。。可是大量的企业选择和应用了不牛的WIN、MSSQL
    简略用过ORCLE/MySQL,只因是用法不当,水平不精,敬而远之
    对企业需求千变万化的环境,对开发、管理的灵活、易用及效率,我们选择了MSSQL
    Apr. 30
    維 李wrote:
    >codegear想跟盛大合作?

    呵呵, 如果是這樣那我更想CG和Blizzard合作, 那如此一來我就可以試著申請參加Diablo 3的Beta了
    Apr. 29
    維 李wrote:
    >codegear想跟盛大合作?

    這我就不知道了.
    Apr. 29
    維 李wrote:
    >若DELPHI的未来版本DBX连接SQL SERVER 2005/2008使用Native Client 那么未来版本的跨平台<LINUX>如何处理此问题??? 难道MS也在开发LINUX平台的Native Client么?

    ? MS SQL Sever只能跑在Window上, 如果Delphi推出跨平台的版本, 那麼我想主要使用的資料庫應該是Interbase, MySQL, Oracle等吧, 到了Linux上為什麼還要使用MS SQL?
    Apr. 29
    生 刘wrote:
    若DELPHI的未来版本DBX连接SQL SERVER 2005/2008使用Native Client
    那么未来版本的跨平台<LINUX>如何处理此问题???
    难道MS也在开发LINUX平台的Native Client么?
    Apr. 29
    No namewrote:
    我听说李大师不久前去过盛大,好像大卫I也去了
    codegear想跟盛大合作?
    Apr. 29
    維 李wrote:
    >這樣的作法就像是利用oci.dll連oracle一樣(也需裝client)改版後的速度,的確應該要比較快些

    OLE的overhead比較大, 因此稍慢了一點

    >不知DBX連ORACLE有沒有增加一些新的技巧

    新的技巧? 什麼意思? 現在的Weaver只是第一個beta版, 大多數的新功能都還沒有實作出來, 因此我也不知道.
    Apr. 29
    維 李wrote:
    >我主要研究RO与Midas,有空来踩踩我的博客,呵呵,谢谢!

    有啊, 早去過了, 你寫的很好啊
    Apr. 29
    維 李wrote:
    >李大哥在盛大就职吗?
    沒有啊

    >好久不见了,深圳一别,不知何时能再见面!
    是啊, 我也很懷念深圳朋友帶我去吃的美食
    Apr. 29
    RUwrote:
    這樣的作法就像是利用oci.dll連oracle一樣(也需裝client)
    改版後的速度,的確應該要比較快些

    不知DBX連ORACLE有沒有增加一些新的技巧
    Apr. 29
    No namewrote:
    我主要研究RO与Midas,有空来踩踩我的博客,呵呵,谢谢!
    http://hi.baidu.com/tintinsoft
    Apr. 28
    No namewrote:
    李大哥在盛大就职吗?好久不见了,深圳一别,不知何时能再见面!
    Apr. 28

    Trackbacks

    The trackback URL for this entry is:
    http://gordonliwei.spaces.live.com/blog/cns!CCE1F10BD8108687!3401.trak
    Weblogs that reference this entry
    • None