首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級(jí) | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

計(jì)算機(jī)等級(jí)考試二級(jí)Delphi開發(fā)兩條經(jīng)驗(yàn)分享

近期在做“數(shù)據(jù)庫切割工具”時(shí),碰到了一些棘手的問題,經(jīng)過多方打探、查找,最終得以解決,現(xiàn)總結(jié)下來,給大家共享,免的大家以后在碰到類似問題時(shí)再耗費(fèi)大量時(shí)間去查找、去打探!

  1、判斷輸入的路徑在服務(wù)器上是否存在:

  例如,要在客戶端執(zhí)行一個(gè)創(chuàng)建數(shù)據(jù)庫的程序,數(shù)據(jù)庫要在服務(wù)器上創(chuàng)建,但路徑可以手工輸入,這時(shí)就面臨一個(gè)判斷自已現(xiàn)在輸入的路徑在服務(wù)器上是否存在的問題,免得在執(zhí)行Create Database SQL時(shí)才報(bào)錯(cuò):找不到路徑。

  具體方法如下:

  exec master..xp_cmdshell 'dir E:\DATA' ,在查詢分析器中執(zhí)行此段SQL,如果存在此路徑,會(huì)輸出此路徑下的所有文件與文件夾信息,還有此盤的可用字節(jié)數(shù)與已此文件夾的字節(jié)數(shù)(圖1所示);如果此路徑不存在,則輸出信息如圖2所示,提示“找不到文件”。

  但是,當(dāng)路徑中含有空格時(shí),如C:\Program Files,直接用exec master..xp_cmdshell 'dir C:\Program Files',系統(tǒng)返回結(jié)果會(huì)如跟圖2顯示一樣,我們需要做額外處理,才能得到正確的返回結(jié)果:

  (1)exec master..xp_cmdshell 'dir "C:\Program Files\Microsoft SQL Server\MSSQL"'

  這種寫法,在查詢分析器中直接執(zhí)行是沒有問題的,也能返回正確結(jié)果,但如果放到程序中執(zhí)行:

  SQL.Add('exec master..xp_cmdshell ''dir "C:\Program Files\Microsoft SQL Server\MSSQL"''),Open時(shí)就會(huì)報(bào)錯(cuò),不能執(zhí)行。

  為什么呢???

  (2)我們接下來查看SQL聯(lián)機(jī)幫助,對(duì)XP_CMDSHELL的描述如下:

  xp_cmdshell {'command_string'} [, no_output]

  參數(shù)

  'command_string'

  是在操作系統(tǒng)命令行解釋器上執(zhí)行的命令字符串。command_string 的數(shù)據(jù)類型為 varchar(255) 或 nvarchar(4000),沒有默認(rèn)值。command_string 不能包含一對(duì)以 上的雙引號(hào)。如果由 command_string 引用的文件路徑或程序名稱中有空格,則需要使用一對(duì)引號(hào)。如果使用嵌入空格不方便,可考慮使用 FAT 8.3 文件名作為解決辦 法。

  no_output

  是可選參數(shù),表示執(zhí)行給定的 command_string,但不向客戶端返回任何輸出。

  幫助文件提示我們要用一對(duì)引號(hào)將文件路徑或者程序名稱包起來,將整個(gè)路徑包不起來不會(huì)報(bào)錯(cuò),那我就將帶有空格的單步路徑包起來試試,看看行不行,執(zhí)行 如下SQL:SQL.Add('exec master..xp_cmdshell ''dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL''),這樣Open時(shí)果然不報(bào)錯(cuò)了,看來查詢分析器的語法檢查與我們的Query自己的語法檢查還是有一定區(qū)別的,不能等同的。因此,碰到路徑中帶空格的情況,正確的寫法還是:

  exec master..xp_cmdshell 'dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL'

  這同時(shí)說明SQL幫助文件中的綠色字體部分 command_string 不能包含一對(duì)以上的雙引號(hào) 的描述是不正確的,看來SQL Server幫助文件與產(chǎn)品也出現(xiàn)了“規(guī)格與程序不相符”的問題了,呵呵......

1 2 3 下一頁
  相關(guān)推薦:Delphi開發(fā)中幾種代碼復(fù)用方式及其比較
       2010年計(jì)算機(jī)等級(jí)考試二級(jí)公共基礎(chǔ)知識(shí)教程
       計(jì)算機(jī)等考二級(jí)Delphi考前練習(xí)題及參考答案
       計(jì)算機(jī)等級(jí)考試:Delphi的接口編程基礎(chǔ)介紹
文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。