分享兩個關於資料庫連線問題的解決方案

2021-08-21 18:33:30 字數 3146 閱讀 4500

最近在做畢業設計,是乙個用powerbuilder開發的小系統,這個東東跟兩年前學的vb差不多,但是呢又不太一樣,熟悉熟悉環境就開始做了,現在系統已經完成,總結一下這幾天遇到的小問題,有時候解決不了確實挺煩人的,但願給一些用得到的朋友提供一點思路吧。

每次執行系統都要選擇資料來源,登入sql server

連線資料庫不成功,未正確配置連線

說到這裡,先介紹四種連線方式.

一、使用 snc sqlnative client方式連線資料庫

sqlca = createtransaction

sqlca.dbms= "snc sql native client(ole db)"  //介面說明

sqlca.logid = "sa"           //資料庫管理員id

sqlca.logpass= ""           //資料庫管理員密碼

sqlca.servername = "."       //資料庫伺服器名稱或者ip位址

sqlca.dbparm= "database='techmager'"  //要連線的資料庫名稱

sqlca.autocommit=true                  //設定是否自動提交

connectusing sqlca ;                  //執行資料庫連線

使用snc sql native client方式連線資料庫時,客戶端電腦需要安裝 snc sql native client客戶端程式驅動介面

二、使用ole db方式連線資料庫

sqlca.dbms= "ole db"           //介面說明

sqlca.logid = "sa"              //資料庫管理員id

sqlca.logpass= ""              //資料庫管理員密碼

sqlca.autocommit= false        //設定是否自動提交

sqlca.dbparm ="provider='sqloledb',datasource='.',providerstring='database=techmager'"   //定義連線的引數datasource引數說明資料庫伺服器位址,可以是計算機名稱或者ip , providerstring='database=techmager'說明要連線的資料是  techmager

connectusing sqlca;              //執行資料庫連線

三、使用 ado.net連線資料庫

sqlca.dbms= "ado.net"          //介面說明

sqlca.logid = "sa"              //資料庫管理員id

sqlca.logpass= ''              //資料庫管理員密碼

sqlca.autocommit= false        //設定是否自動提交

sqlca.dbparm ="namespace='system.data.sqlclient',datasource='.',database='techmager'"  //定義連線的引數datasource引數說明資料庫伺服器地    址,可以是計算機名稱或者ip,database='techmager'說明要連線的資料是  techmager

connectusing sqlca ;             //執行資料庫連線

使用ado.net連線資料庫方式連線資料庫時,客戶端電腦需要安裝dotnetframework執行環境才能成功連線到資料庫

四、使用odbc連線資料庫

sqlca.dbms = "odbc"          //介面說明

sqlca.servername="."         //伺服器名稱或者ip位址

sqlca.autocommit = false     //是否自動提交

sqlca.dbparm ="connectstring='dsn=technology;uid=sa;pwd=zab'"   //伺服器資料來源配置

connect using sqlca;         //執行資料庫連線

使用odbc介面方式連線資料庫,客戶端電腦必須配置odbc資料來源

我用的odbc連線,先配置好odbc資料來源,然後寫連線字串就可以了,但當時由於自己寫錯了連線字串,所以為避免出錯,我建議大家還是直接複製配置好的連線語句吧。可以在這裡找。

首先,找到database

然後,找到自己建立的資料來源,右鍵properties,在preview視窗下。

解決:應用程式執行的時候需要乙個入口程式,就是執行時執行的第乙個事件。

習慣了vs中右鍵——設為啟動專案,竟忘記了要給它乙個啟動入口程式,唉。。

系統執行中,又出錯了,原以為是我程式中寫的字段和資料庫欄位不一致導致找不到或者什麼無效之類的,乙個個核對完之後發現:不是我的錯!

這個問題也好解決,把資料庫連線改一下

sqlca.dbparm = "connectstring='dsn=drivers;uid=sa;pwd=123456',disablebind=1,staticbind=0,callescape='no',delimitidentifier='yes',stripparmnames='yes'"

因為系統用到了儲存過程,odbc不允許帶引數,所以必須使得datawindow獲得引數的實際值後再直接呼叫執行過程。高手如是說。

Spring連線兩個以上的資料庫

通過spring的配置,新增多個資料來源,製作多個qlmapclient,ibatis或hibernate的各個dao,按其所需使用不同的qlmapclient,即可連線到多個db。用途嗎,同時使用oracle sqlserver db2 mysql,這樣的可能似乎不大。但是對於要從其他系統讀取資料...

兩個資料庫連線

可以建dblink 然後寫procedure 然後建 scheduler 定期同步或者在表的trigger裡面寫 怎麼寫procedure,建 scheduler 定期同步?還有就是dblink可不可以處理大資料量的資料 百萬條資料 一 db link的連線方式 1 已經配置本地服務 create ...

關於sql中左連線的兩個問題

本來對oracle中的左右連線已經非常熟悉,但是看到專案中寫的各式各樣的連線自己也迷惑了 摘出來,希望火眼金睛o v o 的朋友指點一二。先謝謝了o o。為了容易理解,簡化了實際複雜的sql,但結構類似 問題1 a文 專案使用的 select aa.x,bb.y,cc.z from aa,bb,cc...