今天幫客之家小編在用Power Designer第二次反向資料庫時,遇到一個問題,如下:
Unable to list the users.
[Microsoft][ODBC SQL Server Driver][SQL Server]無法預定義語句
SQLSTATE = 37000
| SQL Server2005中文版 |
www.33lc.com/soft/12358.html |
找了半天,才按如下方式得到解決。歸根結底,是偶在下述第二步驟中出錯了
解決方案:
步驟一:找到PD的DBMS,並修改其DBMS 配置,選擇功能表列中的Database -> Change Current DBMS ,給DBMS選擇SQL Server2005。
步驟二:修改 ODBC 串連方式,切記,使用嚮導產生 System DSN 時一定不要選擇 default database。
重新設定ODBC串連,管理工具 -> 資料來源ODBC -> 在使用者DSN Tab選項中點添加 ->出現建立新資料來源的選擇框口,拖動捲軸到最下方,選擇SQL Srever點完成,出現新資料來源命名視窗,名稱:BinODBC,在伺服器下拉框中,選擇本機資料庫執行個體。點下一步 -> 選擇使用使用者ID和密碼的Sql server驗證 -> 輸入sql使用者名稱密碼 ->不要選擇"更改預設的資料庫為"選框 。直接下一步 -> 完成
步驟三:從PD裡選擇File -> Reverse Engineer -> Database
步驟四:選擇資料庫,選擇表,OK,大功造成。
SQL code
ODBC 錯誤資訊
根據 X/Open 和 SQL Access Group SQL CAE 規範 (1992) 所進行的定義,SQLERROR 返回 SQLSTATE 值。SQLSTATE 值是包含五個字元的字串。下表列出了驅動程式可以為 SQLError 返回的 SQLSTATE 值。
為 SQLSTATE 返回的字串值由兩個字元的類值後接三個字元的子類值組成。類值 01 表明是一種警告,後跟隨 SQL_SUCCESS_WITH_INFO 的傳回碼。只要類值不是 01(IM 除外),則表明是一種錯誤,後跟隨 SQL_ERROR 的傳回碼。類 IM 專門用於表明從 ODBC 實現產生的警告和錯誤。任何類中子類值 000 均用於實現給定類中所定義條件。這種類值和子類值的分配方法由 SQL-92 定義。
說明 通常由傳回值 SQL_SUCCESS 表明成功執行了一個函數,但 SQLSTATE 00000 也表明成功執行。
SQLSTATE ODBC API(驅動程式管理器)錯誤
00000 成功
01000 常規警告
01002 中斷連線錯誤
01004 資料被截斷
01006 未廢除特權
01S00 無效連接字串特性
01S01 行中的錯誤
01S02 選項值已更改
01S03 未更新或刪除任何行
01S04 更新或刪除了多行
01S05 取消操作被當成 FreeStmt/Close
01S06 設法在結果返回第一個行集之前進行提取
07001 參數個數錯誤
07006 違反受限制的資料類型特性
07S01 預設參數使用無效
08001 無法串連到資料來源
08002 串連正在使用
08003 串連未開啟
08004 資料來源拒絕建立串連
08007 在執行事務的過程中串連失敗
08S01 通訊連結失敗
21S01 插入值列表與列列表不匹配
21S02 派生表的程度與列列表不匹配
22001 字串資料右截斷
22002 需要指示符變數,但未提供
22003 數字值超出範圍
22005 分配時出錯
22008 Datetime 欄位溢出
22012 被零除錯誤
22026 字串資料,長度不匹配
23000 違反完整性條件約束
24000* 無效的遊標狀態
25000 無效的事務狀態
28000 無效的授權規範
34000 無效的遊標名稱
37000 語法錯誤或違規訪問 --------------------------------在線上說明裡
3C000 重複的遊標名稱
40001 串列錯誤
42000 語法錯誤或違規訪問
70100 操作終止
IM001 驅動程式不支援本函數
IM002 未找到源名稱並且未指定預設驅動程式
IM003 無法裝載指定的驅動程式
IM004 驅動程式的 SQLAllocEnv 失敗
IM005 驅動程式的 SQLAllocConnect 失敗
IM006 驅動程式的 SQLSetConnectOption 失敗
IM007 未指定資料來源或驅動程式;禁止對話
IM008 對話失敗
IM009 無法裝載轉換 DLL
IM010 資料來源名稱過長
IM011 驅動程式名稱過長
IM012 DRIVER 關鍵字語法錯誤
IM013 追蹤檔案錯誤
S0001 基表或視圖已存在
S0002 未找到基表
S0011 索引已經存在
S0012 未找到索引
S0021 列已存在
S0022 未找到列
S0023 列無預設值
S1000 常規錯誤
S1001 記憶體配置失敗
S1002 列編號無效
S1003 程式類型超出範圍
S1004 SQL 資料類型超出範圍
S1008 已取消操作
S1009 參數值無效
S1010 函數序列錯誤
S1011 操作在此時無效
S1012 所指定的事務作業碼無效
S1015 無可用的遊標名稱
S1090 字串或緩衝區長度無效
S1091 描述符類型超出範圍
S1092 選項類型超出範圍
S1093 參數編號無效
S1094 小數位元值無效
S1095 函數類型超出範圍
S1096 資訊類型超出範圍
S1097 列類型超出範圍
S1098 範圍類型超出範圍
S1099 可為空白類型超出範圍
S1100 唯一性選項類型超出範圍
S1101 準確性選項類型超出範圍
S1103 方向選項超出範圍
S1104 精度值無效
S1105 參數類型無效
S1106 提取類型超出範圍
S1107 行值超出範圍
S1108 並發選項超出範圍
S1109 遊標位置無效
S1110 驅動程式完成無效
S1111 書籤值無效
S1C00 驅動程式無法執行
S1DE0 執行值掛起時無資料
S1T00 逾時失效
很詳細的錯誤碼匯總,希望能對大家有協助哦