台灣最大程式設計社群網站
線上人數
922
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 用ASP連結Delphi的.DB資料庫出現error
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
用ASP連結Delphi的.DB資料庫出現error
價值 : 100 QP  點閱數:3981 回應數:16
樓主

jackson
門外漢
0 1
428 7
發送站內信

各位前輩好,敝人公司的門禁出勤系統,是多年前買的用Delphi5寫的Paradox資料庫,現在需要把員工進出的門禁訊息放在網頁上給Boss看,
但以ODBC設定連結該資料庫都失敗,會出現:
錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Paradox Driver] 從外部資料庫驅動程式產生的非預期的錯誤 (11265)。
/test/Mdoor/tts.asp, line 24

我的程式碼如下:
<%
set cnnDB =server.createobject("adodb.connection")
cnnDB.open "Driver={Microsoft Paradox Driver (*.db )};DBQ=D:\Guard\DataBase;DriverID=26"
sql = "select * from CardList where DateTime like '" & tbxdatea & "' "
set rstObj = cnnDB.execute (sql)
%>
以下連結是我Paradox資料庫檔案的RAR檔,提供各位前輩測試用。
Google雲端硬碟
https://drive.google.com/file/d/0B74n7uvyvHiuS3YySFlxdmZvbTA/view?usp=sharing

感謝大家!!

搜尋相關Tags的文章: [ ASP ] , [ PARADOX ] , [ Delphi ] , [ 資料庫 ] ,
本篇文章發表於2014-11-11 18:04
1樓
回應

香帥
檢舉此回應
您的資料下載測一下,非預期的格式,我的是win2003 paradox 5.x
版本不一樣,就可能錯誤,
我自己作一個paradox的DB及索引PX及select用類似您的程式碼,去CREATE TABLE 後 INSERT 資料,再用SELECT查詢都沒問題
建議將援資料,以原來的方式讀到一個文字檔
再由文字檔匯入您網頁的server所支援的ODBC的Paradox版本

本篇文章回覆於2014-11-12 03:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

jackson
檢舉此回應
帥大您好,您的"以原來的方式讀到一個文字檔",意思是我用Delphi去寫一個轉檔程式,將它匯成文字檔後,再由ASP網頁去讀取它,是嗎?
若是的話可能有些難度,因為我只會ASP的語法,而這套門禁出勤系統目前還正在運作中,因此只想單純以讀取的方式顯示在Web提供查詢。
不知我這樣的理解對或不對,請您多多指教,不勝感激。
本篇文章回覆於2014-11-12 10:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

香帥
檢舉此回應
帥大您好,您的"以原來的方式讀到一個文字檔",意思是我用Delphi去寫一個轉檔程式,將它匯成文字檔後,
將他拿到server端,再由ASP網頁去讀取該文字檔,轉成paradox的db檔案(假如您只會asp的話),
以後查詢也是用asp去查paradox的db檔喔,不是用沒有效率的查文字檔喔
本篇文章回覆於2014-11-12 11:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

香帥
檢舉此回應
匯入匯出不一定要用delphi
請參考微軟的Access軟體
http://support.microsoft.com/kb/826507/zh-tw
本篇文章回覆於2014-11-12 11:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

jackson
檢舉此回應
帥大您好,但是Delphi的程式設計我不會,您的意思是再另外建立一個ASP讀的到的Paradox資料庫B,每次Web查詢都先從門禁出勤系統的Paradox資料庫A,撈到ASP讀的到的Paradox資料庫B,然後顯示在web是嗎?因為Web的查詢是要即時顯示的。感謝您∼
本篇文章回覆於2014-11-12 11:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

香帥
檢舉此回應
回5#
是的
本篇文章回覆於2014-11-12 11:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

香帥
檢舉此回應
幫您找到方法
程式碼如下

執行結果如下圖

測試網址在
http://ap.a168a.com/blueshop/delphidb/s4.asp
解決關鍵
下載符合server的DBE引擎並安裝(若之前有安裝不符的DBE引擎,要先移除)
本篇文章回覆於2014-11-12 13:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

jackson
檢舉此回應
帥大您真利害,想不到在您這兒找到答案了,只是我可能是之前在網路胡亂安裝了幾個DBE引擎,可能有把server搞亂了,請問您的Win2003 server有另外安裝DBE引擎嗎?還是都沒裝只用Win2003 server內建的?
本篇文章回覆於2014-11-12 13:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

jackson
檢舉此回應
以下是我Run您程式碼後的error訊息:

Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'

[Microsoft][ODBC Paradox Driver] 從外部資料庫驅動程式產生的非預期的錯誤 (11265)。

/test/Mdoor/tts.asp, 列21

不知哪裡出問題了,勞您過目。
本篇文章回覆於2014-11-12 14:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

jackson
檢舉此回應
我用另一台Windows 2003 server電腦測了一下,發現我用Access2003匯出的Paradox 5(*.db)檔,居然也會出現如上列的錯誤訊息,怎麼Access2003可以正常讀寫Paradox,但ASP卻不行?會不會是我的電腦真的缺了必要的DBE引擎版本了,您用的是哪個DBE引擎版本呢?還有載點可下嗎?
我的Win2003系統:
Microsoft Windows Server2003 R2
Enterprise Edition
Service Pack 2
本篇文章回覆於2014-11-12 14:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
試試轉個彎
資料庫連結改到ODBC中建立
ASP中則改連ODBC名稱
本篇文章回覆於2014-11-12 14:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

香帥
檢舉此回應
我原來內建自己create insert select ...的parasdox db都ok
但用內建的無法讀取您的資料,顯示非預期的格式,才想用匯出再轉入asp內建的parasdox
但後來下載BDE引擎,才可以讀您的CardList.DB
因此推斷只要您安裝正確的BDE版本就可以讀到CardList.DB
本篇文章回覆於2014-11-12 14:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

jackson
檢舉此回應
感謝帥大的不吝指教,可否跟您索取您後來下載BDE引擎,才可以讀到CardList.DB的下載點嗎?感恩。
本篇文章回覆於2014-11-12 15:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

香帥
檢舉此回應
已用站內信回覆。
本篇文章回覆於2014-11-12 15:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
到控制台開啟BDE Administrator
切換到
Configuration->Drivers->Native->PARADOX
右邊的Definition中有個 NET DIR 設定
到NET DIR所指定的資料夾,在安全性中加入匿名帳號(ISUR)的寫入權限即可
本篇文章回覆於2014-11-12 15:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.