我最近在做一個資料庫專案,用的是pb12.5,之前沒有用過現在已接近尾聲,遇到了幾個問題,或者叫困惑1.我的資料庫用的是ASA的那個,我在開發的時候是在教研室,有想回宿舍繼續做,結果拷貝回去程式無法連接資料庫,查了一下百度,說是要添加資料源,結果搞了好幾次也沒成功,請大家幫忙指點一下2.我昨天把程式編譯生成了可執行檔案,拷貝的別的電腦上還是無法運行,我用的是全編譯,發現還是提示缺少dll,把缺少的都拷貝了,還是無法連接資料庫3.我這個專案之前有一個很相似的,不是我做的,是Delphi做的,我運行的時候直接打開,之前也并沒有進行ODBC資料源的添加與配置,有點困惑了現在希望做過PB的兄弟姐妹幫幫忙,專案就快驗收了。不勝感激!
uj5u.com熱心網友回復:
只能去配置ODBC資料源了uj5u.com熱心網友回復:
1 ODBC 添加資料源,如果添加不成功,有可能是系統問題,換臺電腦試試。2 如果運行程式的電腦上沒有PB環境,需要把PB運行的一些基本的DLL拷貝到程式目錄,
如9.0版本:pbodb90.dll,pblib90.dll等檔案,12.5應該有對應的dll檔案
uj5u.com熱心網友回復:
ODBC 資料源,在新建ASA資料庫的時候,最好指定的DB檔案路徑為當前路徑: ".\"。這樣,再發布時,只要DB檔案在應用安裝目錄下,就能夠啟動資料庫。否則,必須按照開發的路徑設定安轉路徑。我用下來的經驗如此。
uj5u.com熱心網友回復:
ASA資料庫是包含兩個檔案,一個是資料庫檔案db,另一個是log檔案。在你將開發的東西全部拷貝到另一臺機器時,可能也將這兩個檔案也拷貝過來了。但是,據我所知log檔案里記錄的東西還是你原來機器里的東西。因此,在你連接資料庫時,會出錯(這是我過去用pb8時曾遇到的問題,后來好像用sybase centre強行修改才能使用)。后來我不得不只用db檔案,而舍掉log檔案。這是多年前的事了,僅供參考。uj5u.com熱心網友回復:
如果一臺電腦上沒有安裝powerbuilder 也就沒有asa資料庫了
那這時候怎么配置ODBC呢?
謝謝了
uj5u.com熱心網友回復:
如果程式不連接資料庫 那么拷貝一些元件dll就應該可以運行
現在要連接資料庫 還要在一個沒有環境的電腦里面 我就不會弄了
中午差了一些書籍 貌似要把資料庫驅動也考過去 但是怎么安裝就不會了
uj5u.com熱心網友回復:
你在程式-sybase-pb12-powerbuilder runtime package運行一下,然后選擇里面的odbc等選項,則系統會生成一個安裝包(另存到你指定的地方),這里面就會包括odbc的驅動了。uj5u.com熱心網友回復:
同樣,你到開發機器的注冊表中,找到ODBC節點中,你本機的資料庫連接的配置,將這些東西配置到客戶端或者你說的宿舍機器里。這樣不用到ODBC界面中配置。這對你到應用發布到客戶端有用。uj5u.com熱心網友回復:
打開ODBC的步驟是:開始->運行->odbcad32->回車
如果你沒有ASA庫那你除非連其它服務器上的資料庫
uj5u.com熱心網友回復:
7樓fm20027說的比較全面了。要想編譯后的程式能使用,有兩個條件要求滿足。1、你其它的機器上肯定要有ASA的資料庫,并能由應用程式啟動。或配置有ASA資料庫手工啟動。2、應用程式能運行起來,運行起來要求有相關的dll庫檔案及對應的連接資料庫。ASA資料庫考相關的dll及exe檔案過來再通過ODBC配置,或者直接用PB安裝盤安裝sqlanywhere再配置。資料庫配好并能啟動后,PB的程式運行僅需要相關的一些dll就行了,用PB的powerbuilder runtime package可以直接生成所需的庫檔案安裝包。uj5u.com熱心網友回復:
注冊表注冊odbc的代碼if profilestring(is_app_path + '\salesystem.ini','SYSTEM PROFILE','ERGEDIT','0') = '1' then
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 11.0","Driver", RegString!, is_app_path + "\dbms\dbodbc11.dll")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 11.0","Setup", RegString!, is_app_path + "\dbms\dbodbc11.dll")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 11.0 Translator","Driver", RegString!, is_app_path + "\dbms\dbctrs11.dll")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 11.0 Translator","Setup", RegString!, is_app_path + "\dbms\dbctrs11.dll")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Anywhere 11.0 Translator","Translator", RegString!, is_app_path + "\dbms\dbctrs11.dll")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers","SQL Anywhere 11.0", RegString!, "Installed")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Translator","SQL Anywhere 11.0 Translator", RegString!, "Installed")
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\dbeng11.exe","path", RegString!, is_app_path)
RegistrySet( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\dbeng11.exe","", RegString!, is_app_path + "\dbms\dbeng11.exe")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","WRM", RegString!, "SQL Anywhere 11.0")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","AutoStop", RegString!, "yes")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","DatabaseFile", RegString!, is_app_path + "\dbms\sale.db")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","DatabaseName", RegString!, "Sale")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","Driver",RegString!,is_app_path + "\dbms\dbodbc11.dll")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","PWD",RegString!,"sql")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","Start", RegString!,is_app_path + "\dbms\dbeng11.exe")
RegistrySet( "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\WRM","UID",RegString!,"dba")
setprofilestring(is_app_path + '\salesystem.ini','SYSTEM PROFILE','ERGEDIT','0')
end if
uj5u.com熱心網友回復:
pb12.5 自帶的 asa 12 ,把代碼里的11都改成 12 ,上面的代碼是pb 11.5 asa 11下的轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/60679.html
標籤:數據庫相關
上一篇:神木縣委書記雷正西強調:加快建設宜居新城促進城鄉統籌發展
下一篇:PB9連SQL2008問題
