cisql
Ⅰ 如何查看CI執行的sql
AR類已經對插入資料庫的數據進行了轉義,所以使用AR類是相對安全的,當然了,這個世界上沒有絕對的事情。
Ⅱ isql.exe 與 osql.exe的用法和區別
對比它們的使用幫助,大部分是一樣的。紅色部分即它們之間的區別,可以忽略。
下面是一份完整的OSQL的參數,使用方法 :
-L
列出在本地配置的伺服器和在網路上廣播的伺服器的名稱。
-U login_id
用戶登錄 ID。登錄 ID 區分大小寫。
-P password
是用戶指定的密碼。如果未使用 -P 選項,osql 將提示輸入密碼。如果在命令提示符的末尾使用 -P 選項而不帶密碼,osql 使用默認密碼 (NULL)。密碼區分大小寫。
OSQLPASSWORD 環境變數使您得以為當前會話設置默認密碼。因此,不需要通過硬編碼來在批處理文件中設置密碼。
如果沒有為 -P 選項指定密碼,osql 首先檢查 OSQLPASSWORD 變數。如果未設置值,osql 使用默認密碼 (NULL)。以下示例在命令提示符處設置 OSQLPASSWORD 變數,然後訪問 osql 實用工具:
C:/>SET OSQLPASSWORD=abracadabra
C:/>osql
-E
使用信任連接而不請求密碼。
-S server_name[/instance_name]
指定要連接的 Microsoft SQL Server 2000 實例。在該伺服器上指定 server_name 以連接到 SQL Server 的默認實例。在該伺服器上指定 server_name/instance_name 以連接到一個已命名的 SQL Server 2000 的實例。如果未指定伺服器,osql 將連接到本地計算機上的 SQL Server 默認實例。從網路上的遠程計算機執行 osql 時,此選項是必需的。
-H wksta_name
是工作站名稱。工作站名稱存儲在 sysprocesses.hostname 中並由 sp_who 顯示。如果未指定此選項,則採用當前計算機名稱。
-d db_name
啟動 osql 時發出一個 USE db_name 語句。
-l time_out
指定 osql 登錄超時之前的秒數。登錄到 osql 的默認超時為 8 秒。
-t time_out
指定命令超時之前的秒數。如果未指定 time_out 值,則命令不會超時。
-h headers
指定要在列標題之間列印的行數。默認為每一查詢結果集列印一次標題。用 –1 指定不列印標題。如果使用 -1,則在參數和設置之間一定不能有空格(可以是 -h-1,不能是 -h –1)。
-s col_separator
指定列分隔符字元,其默認為空格。若要使用對操作系統有特殊含義的字元(例如 | ; & < >),請將該字元用雙引號 (") 引起來。
-w column_width
允許用戶設置屏幕輸出的寬度。默認為 80 個字元。當輸出行達到其最大屏幕寬度時,會拆分為多個行。
-a packet_size
使您得以請求不同大小的數據包。packet_size 的有效值在 512 到 65535 之間。osql 的默認值為伺服器的默認值。數據包大小的增加可以提高較大腳本執行的性能,在這種執行中 GO 命令之間 SQL 語句的數量很重要。Microsoft 的測試表明 8192 是大容量復制操作典型的最快設置。可以請求更大的數據包大小,但如果請求不能得到批准,則 osql 默認為伺服器的默認值。
-e
回顯輸入。
-I
設置 QUOTED_IDENTIFIER 連接選項為開啟。
-D data_source_name
連接到用 Microsoft SQL Server 的 ODBC 驅動程序定義的 ODBC 數據源。osql 連接使用該數據源中指定的選項。
說明 該選項不適用於其它驅動程序定義的數據源。
-c cmd_end
指定命令終止符。默認情況下,通過單獨在一行中輸入 GO 來終止命令並將其發送到 SQL Server 2000。在重置命令終止符時,不要使用對操作系統有特殊含義的 Transact-SQL 保留字或字元,無論其前面是否有反斜杠。
-q "query"
啟動 osql 時執行查詢,但是在查詢完成時不退出 osql。(注意查詢語句不應包含 GO)。如果從批處理文件中發出查詢,請使用 %variables 或環境 %variables%。例如:
SET table = sysobjects
osql /q "Select * from %table%"
將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-Q "query"
執行查詢並立即退出 osql。將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-n
從輸入行中刪除編號和提示符號 (>)。
-m error_level
自定義錯誤信息的顯示。顯示指定的或更高嚴重級別錯誤的消息數、狀態和錯誤級別。不顯示嚴重級別低於指定級別的錯誤的任何信息。用 -1 指定與消息一起返回所有標題,即使是信息類的消息。如果用 –1,則在參數和設置之間不能有空格(可以是 -m-1,不能是 -m -1)。
-r {0 | 1}
將消息輸出重定向到屏幕 (stderr)。如果未指定參數,或指定參數為 0,則僅重定向嚴重級別為 17 或更高的錯誤信息。如果指定參數為 1,則將重定向所有消息輸出(包括 "print")。
-i input_file
標識包含一批 SQL 語句或存儲過程的文件。小於 (<) 比較運算符可以用來代替 –i。
-o output_file
標識從 osql 接收輸出的文件。大於 (>) 比較運算符可以用來代替 –o。
如果 input_file 不是 Unicode 並且沒有指定 -u,則 output_file 將存儲為 OEM 格式。如果 input_file 是 Unicode 或者指定了 -u,則 output_file 將存儲為 Unicode 格式。
-p
列印性能統計。
-b
指定發生錯誤時 osql 退出並返回一個 DOS ERRORLEVEL 值。當 SQL Server 錯誤信息的嚴重級別為 10 或更高時,返回給 DOS ERRORLEVEL 變數的值為 1;否則返回 0。Microsoft MS-DOS? 批處理文件可以測試 DOS ERRORLEVEL 的值並適當處理錯誤。
-u
指定 output_file 存儲為 Unicode 格式,而不管 input_file 為何種格式。
-R
指定在將貨幣、日期和時間數據轉換為字元數據時 SQL Server ODBC 驅動程序使用客戶端設置。
-O
為與 isql 的早期版本行為匹配,指定停用某些 osql 功能。下列功能停用:
EOF 批處理
控制台寬度自動調整
寬信息
同時還將 DOS ERRORLEVEL 的默認值設置為 –1。
注釋
osql 實用工具從操作系統直接啟動,並且使用本文中列出的區分大小寫的選項。啟動後,osql 接受 SQL 語句並將它們交互地發送到 SQL Server。結果被格式化並顯示在屏幕上 (stdout)。可使用 QUIT 或 EXIT 退出 osql。
如果啟動 osql 時未指定用戶名,SQL Server 2000 將檢查環境變數並使用它們,例如 osqluser=(user) 或 osqlserver=(server)。如果未設置環境變數,則使用工作站用戶名。如果未指定伺服器,則使用工作站名稱。
如果 -U 或 -P 選項都沒有使用,則 SQL Server 2000 將嘗試使用 Windows 身份驗證模式進行連接。身份驗證基於運行 osql 的 Microsoft Windows NT? 用戶帳戶。
osql 實用工具使用 ODBC API。該實用工具使用 SQL Server 2000 SQL-92 連接選項的 SQL Server ODBC 驅動程序默認設置。有關更多信息,請參見 SQL-92 選項的效果。
有關此實用工具位置和運行方式的信息,請參見命令提示實用工具入門。
OSQL 命令
除了 osql 中使用的 Transact-SQL 語句外,下表中的命令也可用。
命令 描述
GO 執行最後一個 GO 命令之後輸入的所有語句。
RESET 清除已輸入的所有語句。
ED 調用編輯器。
!! command 執行操作系統命令。
QUIT 或 EXIT( ) 退出 osql。
CTRL+C 鍵 不退出 osql 而結束查詢。
僅當命令終止符 GO(默認)、RESET、ED、!!、EXIT、QUIT 和 CTRL+C 出現在一行的開始(緊跟 osql 提示符)時才可以識別。osql 忽視同一行中這些關鍵字後輸入的任何內容。
GO 表明一批的結束和任何已被高速緩存的 Transact-SQL 語句的執行。在每個輸入行的結尾按 ENTER 鍵時,osql 將高速緩存此行的語句。鍵入 GO 後按 ENTER 鍵時,所有當前已緩存的語句都將作為批處理發送到 SQL Server。
當前的 osql 實用工具工作起來就好像在任何被執行的腳本結尾處都帶有隱含的 GO,因而腳本中的所有語句都將執行。最後一個 GO 後的任何語句都不執行。
通過鍵入以命令終止符作為開始的行來結束命令。可以在命令終止符後輸入一個整數來指定命令運行的次數。例如,若要執行此命令 100次,請鍵入:
Select x = 1
GO 100
執行結束時列印一次結果。osql 不接受每行字元數超過 1,000 的結果。長語句應當跨多個行書寫。
通過在行首鍵入 ED,用戶可以在當前查詢緩沖區上調用編輯器。編輯器在 EDITOR 環境變數中定義。默認編輯器為"edit"。可以通過設置 EDITOR 環境變數來指定其它編輯器。例如,若要將默認編輯器指定為 Notepad,請在操作系統提示符處輸入:
SET EDITOR=notepad
操作系統命令
通過用兩個驚嘆號 (!!) 開始一行,然後輸入命令的方式,也可以執行操作系統命令。Windows NT 的命令撤回功能可用來撤回和修改 osql 語句。鍵入 RESET 可以清除現有的查詢緩沖區。
在運行存儲過程時,osql 在批處理中的每個結果集之間列印一個空行。此外,如果沒有應用於已執行的語句,則"0 行受到影響"消息不會出現。
交互性使用 osql
若要交互性使用 osql,請在命令提示符處鍵入 osql 命令(以及任何選項)。
可以通過鍵入類似下行的命令,在包含由 osql 執行的查詢的文件(例如 Stores.qry)中進行讀取:
osql /U alma /P /i stores.qry
該文件必須包含命令終止符。
可以通過鍵入類似下行的命令,在包含查詢的文件(例如 Titles.qry)中進行讀取並將結果導向另一文件:
osql /U alma /P /i titles.qry /o titles.res
交互性使用 osql 時,為把操作系統文件讀入到命令緩沖區,可使用:r file_name。不要在文件中包含命令終止符;在完成編輯後交互輸入終止符。
插入注釋
在 osql 提交給 SQL Server 的 Transact-SQL 語句中可以包含注釋。允許使用兩種注釋風格類型:-- 和 /*...*/。
有關更多信息,請參見使用注釋。
使用 EXIT 返回 osql 結果
可以使用 Select 語句的結果作為 osql 的返回值。第一個結果行的第一列轉換為 4 位元組的整數(長整型)。MS-DOS 將低位元組傳遞給父進程或操作系統錯誤級別。Windows NT 則傳遞整個 4 位元組整數。語法為:
EXIT(query)
例如:
EXIT(Select @@ROWCOUNT)
EXIT(Select 5)
也可以包含 EXIT 參數,使其作為批處理文件的一部分。例如:
osql /Q "EXIT(Select COUNT(*) FROM '%1')"
osql 實用工具將圓括弧 ( ) 中輸入的所有內容原樣傳遞給伺服器。如果存儲系統過程選擇了一個集合並返回一個值,則僅返回選擇的內容。在圓括弧之間無參數的 EXIT( ) 語句執行批處理中此語句前的所有內容,然後退出,而不返回值。
EXIT 格式有四種:
EXIT
不執行批處理就立即退出,無返回值。
EXIT( )
執行批處理後退出,無返回值。
EXIT(query)
執行包括查詢的批處理,返回查詢的結果後退出。
狀態為 127 的 RAISERROR。
如果在 osql 腳本中使用 RAISERROR,並且出現狀態 127,則 osql 會退出並將消息 ID 返回給客戶程序。例如:
RAISERROR(50001, 10, 127)
該錯誤會導致 osql 腳本終止並將消息 ID 50001 返回給客戶程序。
SQL Server 保留介於 -1 到 -99 之間的返回值;osql 定義下列值:
-100
選擇返回值前遇到的錯誤。
-101
選擇返回值時找不到行。
-102
選擇返回值時發生轉換錯誤。
顯示 money 和 smallmoney 數據類型
osql 只用兩位小數位數顯示 money 和 smallmoney 數據類型,但 SQL Server 用四位小數位數在內部存儲這兩類數據的值。請看下例:
Select CAST(CAST(10.3496 AS money) AS decimal(6, 4))
此語句的結果為 10.3496,說明該值是原樣按完整的小數位存儲的。
Ⅲ 在C:>sqllcmd -s.\SQLExpress -E -iinstnwnd.sql的時候出現這樣的問題如何解決
查看右上角消息,參考一下我發的內容。
Ⅳ isql 不是內部或外部命令 也不是可運行的程序或批處理文件
windowords本身是沒有isql.exe這個文件的,這個文件應該是第三方的,建議從網上下載後復制到C:\Windows\System32里
Ⅳ SQL server2008 安裝完成後無isql工具,只有osql, 環境變數沒有問題,默認路徑下也無isql.exe 怎麼解決
對比它們的使用幫助,大部分是一樣的。紅色部分即它們之間的區別,可以忽略。
下面是一份完整的OSQL的參數,使用方法 :
-L
列出在本地配置的伺服器和在網路上廣播的伺服器的名稱。
-U login_id
用戶登錄 ID。登錄 ID 區分大小寫。
-P password
是用戶指定的密碼。如果未使用 -P 選項,osql 將提示輸入密碼。如果在命令提示符的末尾使用 -P 選項而不帶密碼,osql 使用默認密碼 (NULL)。密碼區分大小寫。
OSQLPASSWORD 環境變數使您得以為當前會話設置默認密碼。因此,不需要通過硬編碼來在批處理文件中設置密碼。
如果沒有為 -P 選項指定密碼,osql 首先檢查 OSQLPASSWORD 變數。如果未設置值,osql 使用默認密碼 (NULL)。以下示例在命令提示符處設置 OSQLPASSWORD 變數,然後訪問 osql 實用工具:
C:/>SET OSQLPASSWORD=abracadabra
C:/>osql
-E
使用信任連接而不請求密碼。
-S server_name[/instance_name]
指定要連接的 Microsoft SQL Server 2000 實例。在該伺服器上指定 server_name 以連接到 SQL Server 的默認實例。在該伺服器上指定 server_name/instance_name 以連接到一個已命名的 SQL Server 2000 的實例。如果未指定伺服器,osql 將連接到本地計算機上的 SQL Server 默認實例。從網路上的遠程計算機執行 osql 時,此選項是必需的。
-H wksta_name
是工作站名稱。工作站名稱存儲在 sysprocesses.hostname 中並由 sp_who 顯示。如果未指定此選項,則採用當前計算機名稱。
-d db_name
啟動 osql 時發出一個 USE db_name 語句。
-l time_out
指定 osql 登錄超時之前的秒數。登錄到 osql 的默認超時為 8 秒。
-t time_out
指定命令超時之前的秒數。如果未指定 time_out 值,則命令不會超時。
-h headers
指定要在列標題之間列印的行數。默認為每一查詢結果集列印一次標題。用 –1 指定不列印標題。如果使用 -1,則在參數和設置之間一定不能有空格(可以是 -h-1,不能是 -h –1)。
-s col_separator
指定列分隔符字元,其默認為空格。若要使用對操作系統有特殊含義的字元(例如 | ; & < >),請將該字元用雙引號 (") 引起來。
-w column_width
允許用戶設置屏幕輸出的寬度。默認為 80 個字元。當輸出行達到其最大屏幕寬度時,會拆分為多個行。
-a packet_size
使您得以請求不同大小的數據包。packet_size 的有效值在 512 到 65535 之間。osql 的默認值為伺服器的默認值。數據包大小的增加可以提高較大腳本執行的性能,在這種執行中 GO 命令之間 SQL 語句的數量很重要。Microsoft 的測試表明 8192 是大容量復制操作典型的最快設置。可以請求更大的數據包大小,但如果請求不能得到批准,則 osql 默認為伺服器的默認值。
-e
回顯輸入。
-I
設置 QUOTED_IDENTIFIER 連接選項為開啟。
-D data_source_name
連接到用 Microsoft SQL Server 的 ODBC 驅動程序定義的 ODBC 數據源。osql 連接使用該數據源中指定的選項。
說明 該選項不適用於其它驅動程序定義的數據源。
-c cmd_end
指定命令終止符。默認情況下,通過單獨在一行中輸入 GO 來終止命令並將其發送到 SQL Server 2000。在重置命令終止符時,不要使用對操作系統有特殊含義的 Transact-SQL 保留字或字元,無論其前面是否有反斜杠。
-q "query"
啟動 osql 時執行查詢,但是在查詢完成時不退出 osql。(注意查詢語句不應包含 GO)。如果從批處理文件中發出查詢,請使用 %variables 或環境 %variables%。例如:
SET table = sysobjects
osql /q "Select * from %table%"
將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-Q "query"
Ⅵ ci 原生sql和查詢構造器哪個效率高
sql語句全部收集起來復制到SQL客戶端運行速度很快 幾秒鍾就好了
Ⅶ 求助,求CI連接mssql的最簡單方法
這個目前codeigniter自己提供了方法什麼的。但是我一直都沒有真正掌握,還真不敢說,我搞來搞去,都是自己用sql語句在寫。
Ⅷ 系統會在c:\windows\system32下自動生成isql文件夾,不知是什麼病毒
這個是有一個木馬造成的。
你看一下,c:/windows/system32下是否有多個64K的xml文件,還有一個隱藏的wsynalib.exe,服務里還會有一個叫Windows System Active的。
處理方法,是先刪除wsynalib.exe和多個64k的xml文件,再刪c:\windows\system32下isql文件夾,之後修改注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor下AutoRun 的選項為空,然後再刪掉服務Windows System Active。
Ⅸ isql連接SQLSERVER查詢中文表報錯
如:Windows (x86, 32-bit), MSI Installer Connector-ODBC
版本、cpu*64之類的自己看著辦吧
裝完之後,添加數據源(管理工具——數據源——添加----)
64位機器裝的32位odbc ,要去system32里的odbc打開,添加,不要去「管理工具」下的打開,去打開「C:\Windows\System32」下的odbcad32.exe
原來有截圖,今天看了截圖都不可讀了,懶得再截了
加完之後,
測試通過,就完成了准備工作
打開sqldbx,連接
dbmstype:odbc
是不是DNS就可以找到你要的庫了,哈哈