解決方案:
步驟一:找到PD的DBMS,並修改其DBMS 配置,選擇選單欄中的Database -> Change Current DBMS ,給DBMS選擇SQL Server2005。
如圖:
space
步驟二:修改 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 選項值已更改
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 超時失效
解決方案:
步驟一:找到PD的DBMS,並修改其DBMS 配置,選擇選單欄中的Database -> Change Current DBMS ,給DBMS選擇SQL Server2005。
如圖:
space
space
步驟二:修改 ODBC 連線方式,切記,使用嚮導生成 System DSN 時一定不要選擇 default database。
重新配置ODBC連線,管理工具 -> 資料來源ODBC -> 在使用者DSN Tab選項中點新增 ->出現建立新資料來源的選擇框口,拖動捲軸到最下方,選擇SQL Srever點完成,出現新資料來源命名視窗,名稱:BinODBC,在伺服器下拉框中,選擇本地資料庫例項。點下一步 -> 選擇使用使用者ID和密碼的Sql server驗證 -> 輸入sql使用者名稱密碼 ->不要選擇"更改預設的資料庫為"選框 。直接下一步 -> 完成
space
步驟三:從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 選項值已更改
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 超時失效