首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
1、判斷輸入的路徑在服務器上是否存在:
例如,要在客戶端執行一個創建數據庫的程序,數據庫要在服務器上創建,但路徑可以手工輸入,這時就面臨一個判斷自已現在輸入的路徑在服務器上是否存在的問題,免得在執行Create Database SQL時才報錯:找不到路徑。
具體方法如下:
exec master..xp_cmdshell 'dir E:\DATA' ,在查詢分析器中執行此段SQL,如果存在此路徑,會輸出此路徑下的所有文件與文件夾信息,還有此盤的可用字節數與已此文件夾的字節數(圖1所示);如果此路徑不存在,則輸出信息如圖2所示,提示“找不到文件”。
但是,當路徑中含有空格時,如C:\Program Files,直接用exec master..xp_cmdshell 'dir C:\Program Files',系統返回結果會如跟圖2顯示一樣,我們需要做額外處理,才能得到正確的返回結果:
(1)exec master..xp_cmdshell 'dir "C:\Program Files\Microsoft SQL Server\MSSQL"'
這種寫法,在查詢分析器中直接執行是沒有問題的,也能返回正確結果,但如果放到程序中執行:
SQL.Add('exec master..xp_cmdshell ''dir "C:\Program Files\Microsoft SQL Server\MSSQL"''),Open時就會報錯,不能執行。
為什么呢???
(2)我們接下來查看SQL聯機幫助,對XP_CMDSHELL的描述如下:
xp_cmdshell {'command_string'} [, no_output]
參數
'command_string'
是在操作系統命令行解釋器上執行的命令字符串。command_string 的數據類型為 varchar(255) 或 nvarchar(4000),沒有默認值。command_string 不能包含一對以 上的雙引號。如果由 command_string 引用的文件路徑或程序名稱中有空格,則需要使用一對引號。如果使用嵌入空格不方便,可考慮使用 FAT 8.3 文件名作為解決辦 法。
no_output
是可選參數,表示執行給定的 command_string,但不向客戶端返回任何輸出。
幫助文件提示我們要用一對引號將文件路徑或者程序名稱包起來,將整個路徑包不起來不會報錯,那我就將帶有空格的單步路徑包起來試試,看看行不行,執行 如下SQL:SQL.Add('exec master..xp_cmdshell ''dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL''),這樣Open時果然不報錯了,看來查詢分析器的語法檢查與我們的Query自己的語法檢查還是有一定區別的,不能等同的。因此,碰到路徑中帶空格的情況,正確的寫法還是:
exec master..xp_cmdshell 'dir C:\"Program Files"\"Microsoft SQL Server"\MSSQL'
這同時說明SQL幫助文件中的綠色字體部分 command_string 不能包含一對以上的雙引號 的描述是不正確的,看來SQL Server幫助文件與產品也出現了“規格與程序不相符”的問題了,呵呵......
相關推薦:Delphi開發中幾種代碼復用方式及其比較北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |