新聞中心
pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句詳解與應(yīng)用

創(chuàng)新互聯(lián)2013年至今,先為新余等服務(wù)建站,新余等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新余企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
PowerBuilder是一個(gè)十分有效的開(kāi)發(fā)工具,主要用于快速構(gòu)建應(yīng)用程序和數(shù)據(jù)庫(kù)連接。作為開(kāi)發(fā)者,我們需要非常熟悉PowerBuilder中的數(shù)據(jù)庫(kù)鏈接語(yǔ)句,以此來(lái)提高我們的開(kāi)發(fā)效率和程序質(zhì)量。本文將詳細(xì)介紹PB6.5中的數(shù)據(jù)庫(kù)鏈接語(yǔ)句,包括鏈接方式、常用語(yǔ)句、常見(jiàn)錯(cuò)誤以及應(yīng)用實(shí)例等內(nèi)容。
1. 鏈接方式
在PB6.5中,連接數(shù)據(jù)庫(kù)的方式有三種:DataWindow、ODB和JDBC。
DataWindow鏈接:這種方式是PB6.5最常用的連接方式,它可以幫助我們快速生成報(bào)表以及對(duì)數(shù)據(jù)進(jìn)行增刪改查等操作。
ODB鏈接:這種鏈接方式是采用ODBC作為中間件,PowerBuilder應(yīng)用程序直接訪問(wèn)ODBC驅(qū)動(dòng)來(lái)操作數(shù)據(jù)。這種方式可以訪問(wèn)各種RDBMS,如SQL Server、Oracle、Sybase等。
JDBC鏈接:這種鏈接方式則是采用Java JDBC驅(qū)動(dòng)作為中間件,PowerBuilder應(yīng)用程序通過(guò)Java JDBC驅(qū)動(dòng)來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。這種方式可以訪問(wèn)所有支持JDBC的數(shù)據(jù)庫(kù),如MySQL、PostgreSQL等。
2. 常用語(yǔ)句
在PB6.5中,我們通常會(huì)使用以下幾種數(shù)據(jù)庫(kù)鏈接語(yǔ)句。
(1)Connect語(yǔ)句
Connect語(yǔ)句用于建立與數(shù)據(jù)庫(kù)的連接。語(yǔ)法格式如下:
CONNECT USING sqlca;
其中,sqlca是系統(tǒng)自帶的一個(gè)全局變量,用于表示連接到數(shù)據(jù)庫(kù)的狀態(tài)。
(2)Disconnect語(yǔ)句
Disconnect語(yǔ)句用于斷開(kāi)與數(shù)據(jù)庫(kù)的連接。語(yǔ)法格式如下:
DISCONNECT USING sqlca;
(3)SelectSQL語(yǔ)句
SelectSQL語(yǔ)句用于查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。語(yǔ)法格式如下:
SELECT * FROM table_name WHERE condition;
其中,table_name為查詢的表名,condition為查詢條件。
(4)InsertSQL語(yǔ)句
InsertSQL語(yǔ)句用于插入新數(shù)據(jù)到數(shù)據(jù)庫(kù)中。語(yǔ)法格式如下:
INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …);
其中,table_name為插入數(shù)據(jù)的表名,column1、column2等為表中的列名,value1、value2等為插入的具體數(shù)值。
(5)UpdateSQL語(yǔ)句
UpdateSQL語(yǔ)句用于更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)。語(yǔ)法格式如下:
UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition;
其中,table_name為要更新的表名,column1、column2等為要更新的列名,value1、value2等為更新后的具體數(shù)值,condition為更新條件。
(6)DeleteSQL語(yǔ)句
DeleteSQL語(yǔ)句用于刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。語(yǔ)法格式如下:
DELETE FROM table_name WHERE condition;
其中,table_name為要?jiǎng)h除數(shù)據(jù)的表名,condition為刪除條件。
3. 常見(jiàn)錯(cuò)誤及處理方法
在使用數(shù)據(jù)庫(kù)鏈接語(yǔ)句時(shí),我們可能會(huì)遇到以下幾種錯(cuò)誤。
(1)Connection阻塞
Connection阻塞可能是由于數(shù)據(jù)庫(kù)文件被其他用戶占用而導(dǎo)致的。我們可以使用Disconnect語(yǔ)句斷開(kāi)連接,或者直接關(guān)閉數(shù)據(jù)庫(kù)文件,等待一段時(shí)間后再進(jìn)行連接嘗試。
(2)驅(qū)動(dòng)錯(cuò)誤
驅(qū)動(dòng)錯(cuò)誤通常是由于缺少相應(yīng)的驅(qū)動(dòng)程序或版本不兼容導(dǎo)致的。我們需要安裝正確的驅(qū)動(dòng)程序,并確保與操作系統(tǒng)和數(shù)據(jù)庫(kù)版本的兼容性。
(3)SQL語(yǔ)法錯(cuò)誤
SQL語(yǔ)法錯(cuò)誤常常是由于SQL語(yǔ)句書(shū)寫(xiě)不規(guī)范或語(yǔ)法錯(cuò)誤導(dǎo)致的。我們需要檢查語(yǔ)句的拼寫(xiě)和格式,確保語(yǔ)法正確。
4. 應(yīng)用實(shí)例
下面給出一個(gè)PB6.5與SQL Server數(shù)據(jù)庫(kù)鏈接的實(shí)例。
(1)創(chuàng)建一個(gè)DataWindow控件,選擇OLE DB從數(shù)據(jù)源選項(xiàng)。
(2)在數(shù)據(jù)源對(duì)話框中輸入SQL Server的連接信息,包括服務(wù)器名稱、數(shù)據(jù)庫(kù)名稱、用戶名和密碼等。
(3)輸入SQL語(yǔ)句,進(jìn)行查詢操作。如下所示:
SELECT * FROM employee;
(4)在DataWindow中布局表格,運(yùn)行程序即可查詢出SQL Server中的數(shù)據(jù)。
以上就是本文關(guān)于PB6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句的詳解與應(yīng)用實(shí)例。作為開(kāi)發(fā)者,我們需要深刻理解數(shù)據(jù)庫(kù)鏈接語(yǔ)句的用法,從而更好地使用PowerBuilder開(kāi)發(fā)出高效、穩(wěn)定的應(yīng)用程序。
相關(guān)問(wèn)題拓展閱讀:
- 在PB中如何用OLE DB來(lái)連接數(shù)據(jù)庫(kù)
- [求助]pb中如何連接sql的數(shù)據(jù)庫(kù)????
在PB中如何用OLE DB來(lái)連接數(shù)據(jù)庫(kù)
幾個(gè)與PB連接數(shù)據(jù)庫(kù)相關(guān)的問(wèn)題
1.Power script 語(yǔ)言里的事務(wù)處理對(duì)象怎么理解
PowerBuilder程序與數(shù)據(jù)庫(kù)之間傳遞信息的一個(gè)結(jié)構(gòu)變量,共有15個(gè)成員.你可以詳細(xì)列表它的所有成員看看它的組成.PB的應(yīng)用程序會(huì)初始化一個(gè)全局的結(jié)構(gòu)體變量,SQLCA,當(dāng)然你也可以自定義一個(gè)自己的事務(wù)對(duì)象.
1 DBMS string 所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的名字,如Sybase,Oracle,ODBC。
2 Database string 要連接的數(shù)據(jù)庫(kù)名字。
3 UserID string 連接數(shù)據(jù)庫(kù)所用的用戶名。有的DBMS不需要此項(xiàng)。
4 DBPass string 用戶連接數(shù)據(jù)庫(kù)的口令。
5 Lock string 這是數(shù)據(jù)庫(kù)的保護(hù)級(jí)別,一般不必給出。
6 LogID string 登錄到數(shù)據(jù)庫(kù)服務(wù)器上的用戶名,有的DBMS不需要此項(xiàng),但Sybase和Oracle需要指定這個(gè)參數(shù)。碧殲悄
7 LogPass string 登錄到數(shù)據(jù)庫(kù)服務(wù)器上的用戶口令。這個(gè)屬性可設(shè)可不設(shè),但Sybase和Oracle需要指定口令。
8 ServerName string 數(shù)據(jù)庫(kù)服務(wù)器名。
9 AutoCommit boolean 指定是否將數(shù)據(jù)庫(kù)設(shè)置成自動(dòng)提交所有事務(wù)。默認(rèn)是False,也就是說(shuō),必須在應(yīng)用程序中進(jìn)行事務(wù)管理,并在適當(dāng)?shù)臅r(shí)候?qū)?shù)據(jù)庫(kù)提交事務(wù)。如果選擇True,則每個(gè)事務(wù)都由系統(tǒng)自動(dòng)提交。
10 DBParm string 用于向數(shù)據(jù)庫(kù)傳遞特殊信息的屬性。
11 SQLCode long 指示最近一次SQL操作失敗或成功。它的取值為: 返回結(jié)果 0 無(wú)錯(cuò)誤。 -1 出現(xiàn)一個(gè)錯(cuò)誤。 100 沒(méi)有檢索到數(shù)據(jù)。
12 SQLNRows long 最近一次SQL操作影響的行數(shù),數(shù)據(jù)庫(kù)不同其含義也不同。
13 SQLDBCode long 數(shù)據(jù)庫(kù)錯(cuò)誤代碼。不同的數(shù)據(jù)庫(kù)的含義不同。
14 SQLErrText string 相應(yīng)于SQLDBCode屬性中錯(cuò)誤碼的文字說(shuō)明。
15 SQLReturnData string 返回DBMS執(zhí)行SQL的附加信息,不同的DBMS其值不同。
2.我常見(jiàn)到做好的PB程序使用.ini文件來(lái)控制與數(shù)據(jù)庫(kù)連接,可以方便的進(jìn)行應(yīng)用程序移植只需修改其中與數(shù)據(jù)庫(kù)連接參數(shù)即可,我想問(wèn)這些.ini文件只能使用手工編寫(xiě)嗎,我見(jiàn)到很多.ini文件參數(shù)極多不象手寫(xiě)好象是機(jī)器生成的,不知道如何生成???請(qǐng)大家指教
1、其實(shí)PB中在新建—點(diǎn)TOOL—-FILE EDIT 可以生成(改鎮(zhèn)編輯)INI文件。最直接就是工具欄中的EDIT圖標(biāo)。
2、機(jī)器生成代碼是:點(diǎn)DATABASE圖標(biāo)—–選擇連接方式。如:選 MSS MICROSOFT SQL SERVER 右鍵-NEW PROFILE 按要求填定一些參數(shù)后在–PREVIEW中可以看到代碼,把它復(fù)制到INI文件中就行了。
3.編程經(jīng)驗(yàn)–PB數(shù)據(jù)庫(kù)連接
作者:郭洪建 無(wú)法確定網(wǎng)上來(lái)源,如有準(zhǔn)確首發(fā),請(qǐng)與本站聯(lián)系
通過(guò)這些年的信息系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),使悔渣我對(duì)POWERBUILDER的理解更進(jìn)一步,最近在開(kāi)發(fā)某子系統(tǒng)模塊時(shí),遇到了一個(gè)奇怪的問(wèn)題,這里給大家介紹一下.
通常在使用PB和數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)連接時(shí),使用兩種方式:
一、開(kāi)放數(shù)據(jù)源接口(ODBC)連接
ODBC是通過(guò)支持美國(guó)微軟公司開(kāi)放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中的一部分.在PB 中通過(guò)配置 SQLCA.DBMS=‘ODBC’對(duì)象的屬性可使應(yīng)用程序通過(guò)ODBC連接到數(shù)據(jù)庫(kù)。
ODBC的具體配置包含了數(shù)據(jù)源、驅(qū)動(dòng)程序類型、緩沖池等各種細(xì)節(jié)參數(shù)。
例子:
SQLCA.DBMS = “ODBC”
SQLCA.AutoCommit = False
SQLCA.DBParm=”C,C”
PWD=”‘,C”
二、專用數(shù)據(jù)庫(kù)接口
每個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)均提供相應(yīng)的客戶端驅(qū)動(dòng),為了更好的服務(wù)于數(shù)據(jù)庫(kù)。
在這里我們使用的是Microsoft sqlserver 2023 的客戶端程序。通過(guò)設(shè)置 SQLCA.DBMS =”MSS Microsoft SQL Server” 使客戶端通過(guò)專用數(shù)據(jù)庫(kù)接口連接到數(shù)據(jù)庫(kù)。
該類接口的參數(shù)配置除了服務(wù)器名、數(shù)據(jù)庫(kù)名、LogId、LogPass外還包含了連接協(xié)議等用戶驗(yàn)證方式等,可通過(guò)服務(wù)器端或客戶端的配置程序進(jìn)行配置。
SQLCA.dbms= “MSS Microsoft SQL Server” //接口類型
SQLCA.database= “master” //數(shù)據(jù)庫(kù)
SQLCA.userid= “”
SQLCA.dbpass= “”
SQLCA.logid= “sa”
SQLCA.logpass= “xxxx”
SQLCA.serverName= “.\xxx”//服務(wù)器名
SQLCA.dbparm= “Commit”
SQLCA.autocommit= false
以上介紹的是PB與數(shù)據(jù)庫(kù)連接時(shí)常用的方法。
往往根據(jù)不同的應(yīng)用環(huán)境選擇連接方式, 在單機(jī)環(huán)境下多采用的是ODBC連接,因?yàn)樵诎l(fā)行環(huán)節(jié)上相對(duì)要容易些。在網(wǎng)絡(luò)環(huán)境下多采用專用數(shù)據(jù)庫(kù)連接,這樣可以提高系統(tǒng)的可靠性與執(zhí)行效率。專用數(shù)據(jù)庫(kù)的發(fā)行環(huán)節(jié)往往要配上相應(yīng)DBMS客戶端的動(dòng)態(tài)連接庫(kù)(DLL),并把它.
PB與ASA數(shù)據(jù)庫(kù)連接問(wèn)題!
一.連接步驟
1.添加數(shù)據(jù)源。WINDOWS98中—-我的電腦—控制面版—-ODBC數(shù)據(jù)源32位—–系統(tǒng)DSN—添加—選擇你使用的數(shù)據(jù)庫(kù)
2.在工具條上點(diǎn)擊DB PROFILE 選擇已建立好的數(shù)據(jù)庫(kù)連接,單擊EDIT在彈出的對(duì)話框中選PREVIEW里面就是連接數(shù)據(jù)庫(kù)的語(yǔ)句,COPY就OK了。
二.DB_profile寫(xiě)法(以lin.com的tax例程為例)
tax.ini
DBMS=ODBC
Database=test
DbParm=c
三.打包所需文件
參看以下文章:
四.容易出現(xiàn)的問(wèn)題及解決方法
導(dǎo)致ASA數(shù)據(jù)庫(kù)無(wú)法連接的問(wèn)題有以下幾種:
1、ODBC配置錯(cuò)誤。沒(méi)有配置數(shù)據(jù)源,數(shù)據(jù)庫(kù)的用戶名或口令錯(cuò)誤等都會(huì)導(dǎo)致數(shù)據(jù)庫(kù)無(wú)法連接。
解決的辦法:檢查數(shù)據(jù)源的配置,如果沒(méi)有在ODBC中配置數(shù)據(jù)源則按照向?qū)砑訑?shù)據(jù)源即可;口令錯(cuò)誤只需改為正確的即可。
2、連接時(shí)提示LOG文件錯(cuò)誤。這樣的問(wèn)題大多出現(xiàn)在重裝系統(tǒng)后、源碼移植到其他系統(tǒng)、數(shù)據(jù)庫(kù)文件路徑改變之后。
解決的辦法:在創(chuàng)建ASA數(shù)據(jù)庫(kù)的時(shí)候不創(chuàng)建LOG文件,如果已經(jīng)創(chuàng)建了LOG文件則可以利用PB自帶的工具Sybase central來(lái)去掉LOG文件和數(shù)據(jù)庫(kù)文件的關(guān)聯(lián)。操作步驟如下:
a)啟動(dòng)Sybase central在左邊的樹(shù)型目錄中選擇Utilities;
b)雙擊右邊出現(xiàn)的條目中的change log file settings,直接next;
c)點(diǎn)Browse選擇需要去除log文件的數(shù)據(jù)庫(kù)文件,選好后next;
d)這里你會(huì)看到一些數(shù)據(jù)庫(kù)的信息,log文件名,文件大小等。next;
e)去掉Maintin the following transaction log file前面的對(duì)勾,F(xiàn)inish;
f)配置ODBC連接數(shù)據(jù)庫(kù)就可以了。
3、數(shù)據(jù)庫(kù)文件損壞。此類錯(cuò)誤一般不常見(jiàn),可能由于病毒破壞或誤操作引起。
解決的辦法:如果以前有備份用備份文件覆蓋原文件即可,如果沒(méi)有備份文件就只能重新建庫(kù)了!
PB8如何使用OLE DB練到ASA數(shù)據(jù)庫(kù)
(本文來(lái)自sybase網(wǎng)站 翻譯 by 金色年華)
原文出處:
Connecting to ASA Server (7.01 GA) via OLE DB in PowerBuilder 8
Adaptive Server Anywhere includes an OLE DB provider named ASAProv. One of the features of ASAProv (dboledb7.dll) is that you do not have to deploy ODBC. In other words, you can connect to an ASA database either via OLE DB or via OLE DB/ODBC bridge.
在pb中通過(guò)OLE DB連接到ASA數(shù)據(jù)庫(kù)的步驟如下:
在命令提示符下鍵入如下命令,啟動(dòng) ASADEMO:
dbsrv7 asademo -x tcpip -n asademo
(“asademo” – 你選擇運(yùn)行的數(shù)據(jù)庫(kù). 確定你沒(méi)有正在運(yùn)行一個(gè)同名的數(shù)據(jù)庫(kù),否則會(huì)出錯(cuò))
有兩個(gè)方法通過(guò) OLE DB 連接到 ASA Server:
1) OLE DB/ODBC bridge
對(duì)于這種連接,你必須在數(shù)據(jù)庫(kù)參數(shù)中,指定有效的 ODBC 數(shù)據(jù)源,連接的腳本如下:
// Profile asa_oledb
SQLCA.DBMS = “OLE DB”
SQLCA.LogPass = “sql”
SQLCA.LogId = “dba”
SQLCA.AutoCommit = False
SQLCA.DBParm = “PROVIDER=’ASAProv’,DATASOURCE=’asa'”
2) OLE DB (不需要配置 ODBC)
你可以通過(guò)一個(gè)擴(kuò)展名為.udl的單獨(dú)的文件,提供連接信息,在OLE DB中訪問(wèn)數(shù)據(jù).這個(gè)文件與 Microsoft DataLink (.udl) file 類似. 你必須在系統(tǒng)中安裝 Datalink API 以便于創(chuàng)建和使用 .udl 文件.
創(chuàng)建 .udl文件的方法:
在當(dāng)前目錄里的空白處單擊鼠標(biāo)右鍵,選擇新建文件,選擇 Microsoft Data Link.如果沒(méi)有創(chuàng)建 Microsoft Data Link 的選項(xiàng),需要?jiǎng)?chuàng)建一個(gè)文本文件,然后更改擴(kuò)展名為 .udl.雙擊這個(gè)文件,添加連接信息.詳情請(qǐng)?jiān)L問(wèn)msdn.microsoft.com 搜索 Data Link(此處原文有亂碼,具體內(nèi)容不詳).
【討論】pb連接MS SQL Server問(wèn)題!
一.連接步驟
1)服務(wù)器安裝SQL Server并啟動(dòng),創(chuàng)建數(shù)據(jù)庫(kù)。
2)客戶機(jī)安裝SQL Server客戶端。
3)啟動(dòng)PB,配置數(shù)據(jù)源描述(通過(guò)直連接口,不建議用ODBC)。
4)連接。
二.DB_profile的寫(xiě)法
在ini文件里設(shè)置
DBMS=MSS Microsoft SQL Server 6.x
Database=databasename
UserId=
LogID=
DatabasePassword=
LogPass=
ServerName=
AutoCommit=False
在程序里用profilestring讀取
附加資料:ms sql server 配置文件設(shè)置
ms sql server 配置文件設(shè)置:
dbms=”mss”//只須在*.ini文件中用這個(gè)代碼便告訴pb使用的ms sql server
Database:所用數(shù)據(jù)庫(kù)
LogId:sql server的登陸賬號(hào)
LogPass=口令
servername:允許數(shù)據(jù)庫(kù)服務(wù)器連接的計(jì)算機(jī)名
autocommit:控制pb 是工作在事務(wù)處理范圍內(nèi)還是工作在事務(wù)處理范圍外
dbparm:dbms的專用連接參數(shù)
以下參數(shù):
language:在顯示錯(cuò)誤消息和日期格式時(shí)指定要使用的語(yǔ)言,在服務(wù)器上必須設(shè)置該直.
lock:事務(wù)處理隔離層
log:文本和圖像數(shù)據(jù)的更新是否應(yīng)該紀(jì)錄到事務(wù)日志中.
systemprocs:系統(tǒng)存儲(chǔ)過(guò)程和用戶定義的存儲(chǔ)過(guò)程是否顯示在各種各樣的pb畫(huà)板中.
pbcatalogowner:pb存儲(chǔ)中表的缺省者.
async:允許在服務(wù)器上進(jìn)行同步操作.0:同步,1:異步
dbgettime:當(dāng)async=1時(shí),使用該參數(shù)設(shè)置用戶在檢索行時(shí)pb等待來(lái)自pb的響應(yīng)的秒數(shù).
cursorlock:release和cursorscroll參數(shù)一起使用可設(shè)置光標(biāo)的鎖定選項(xiàng).lock,opt,optval,readonly
cursorscroll:設(shè)置光標(biāo)的滾動(dòng)選項(xiàng).
staticbind:控制pb是否在檢索數(shù)據(jù)前獲取dbms中的結(jié)果集描述.
dbtextlimit:控制返回的文本字段的更大長(zhǎng)度而不用將文本作為二進(jìn)制大型數(shù)據(jù)對(duì)象來(lái)處理.
appname:設(shè)置連接時(shí)所使用的應(yīng)用程序名.
host:設(shè)置連接似的工作站名.
packetsize:設(shè)置使服務(wù)器向pb傳送數(shù)據(jù)時(shí)所設(shè)置的包大小.
secure:設(shè)置是否想使用winnt集成邏輯安全性和安全sql server連接 缺省0使用標(biāo)準(zhǔn)安全性,1集成安全性.
PowerBuilder與Oracle的連接
PowerBuilder(PB)和Oracle分別是前端開(kāi)發(fā)工具和RDBMS的主流產(chǎn)品。PB提供了兩種與Oracle連接的接口:PowerSoft內(nèi)置的數(shù)據(jù)庫(kù)接口(Native Database Interface)和ODBC接口。本文介紹使用PB6.0內(nèi)置Oracle接口的方法,包括數(shù)據(jù)描述文件的設(shè)置、存儲(chǔ)過(guò)程的調(diào)用和存儲(chǔ)過(guò)程作為數(shù)據(jù)窗口數(shù)據(jù)源的操作方法等內(nèi)容,使用的RDBMS的Oracle 7.3。
PowerBuilder與Oracle的連接
假定已安裝Oracle客戶端應(yīng)用程序。可用Sqlplus或Tnsping等是否能連接到Oracle數(shù)據(jù)庫(kù),確定在SQLNET配置文件中使用的數(shù)據(jù)庫(kù)別名(Database Alias,又稱服務(wù)器名,Server Name)。如有疑問(wèn),可在Oracle客戶端程序目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括SQLNET應(yīng)用程序的安裝目錄(如C:\ORAWIN95\BIN)。
進(jìn)入PB的Database Profiles畫(huà)筆,可看到所有已安裝的數(shù)據(jù)庫(kù)接口(PB6.0缺省安裝的是Oracle 7.3版的接口,如使用低版本的Oracle,需在安裝時(shí)指定),選擇“O73 Oracle 7.3”,點(diǎn)擊“New”按鈕,進(jìn)入Database Profile Setup對(duì)話框。在“Connection”頁(yè)輸入下列信息:
Profile Name:為該Database Profile起一個(gè)有意義的名稱;
Server:TNS:ServerName,其中ServerName為上述數(shù)據(jù)庫(kù)別名(服務(wù)器名),如@TNS:ORA73;
Login ID:Oracle數(shù)據(jù)庫(kù)中實(shí)際的用戶名,由于PB初次連接到數(shù)據(jù)庫(kù)時(shí)要自動(dòng)建立五個(gè)系統(tǒng)表(PowerBuilder Catalog Table;SCATTBL,PBCATCOL,PBCATEDT,PBCATFMT,PBCATVLD,存儲(chǔ)表的擴(kuò)展屬性),因此之一個(gè)連接到Oracle的用戶必須具有建表、給PUBLIC角色授權(quán)等權(quán)限。例如可用SYSTEM用戶進(jìn)行之一次連接,此后的連接對(duì)用戶則無(wú)特殊要求;
Password:該用戶的口令。
設(shè)置上述內(nèi)容后,即可連上Oracle。為優(yōu)化數(shù)據(jù)庫(kù)連接,還可設(shè)置下列選項(xiàng):
Prompt for Database Information:連接時(shí)是否提示用戶輸入用戶名和口令;
Generate Trace:?jiǎn)?dòng)DB跟蹤工具,跟蹤連接;
Thread Safe:開(kāi)發(fā)需要多線程環(huán)境支持的分布式應(yīng)用時(shí),選擇該項(xiàng)。缺省為未選,適用于非分布應(yīng)用;
PBDBMS:與存儲(chǔ)過(guò)程調(diào)用方式有關(guān)的參數(shù)。Oracle為7.2或更高版本時(shí),清除該選項(xiàng),此時(shí)帶IN OUT參數(shù)的存儲(chǔ)過(guò)程可作為數(shù)據(jù)窗口數(shù)據(jù)源。7.2版本以下,選擇該項(xiàng),調(diào)用PBDBMS.Put-Line建立存儲(chǔ)過(guò)程的SQL語(yǔ)句,缺省是選中;
Commit on Disconnect:斷開(kāi)連接時(shí),指定提交或回退未提交的事務(wù);
Case Sensitive:連接的Oracle服務(wù)器是否區(qū)分大小寫(xiě)。注意該項(xiàng)選中時(shí),所有主鍵、包含主鍵的表名、外鍵須全為大寫(xiě)字符。
PowerBuilder Catalog Tables Owner:指定擁有PB系統(tǒng)表的用戶,缺省為“SYSTEM”。如果要使用多種顯示格式或有效性規(guī)則,可以在不同的用戶下建立幾套系統(tǒng)表;
Table Criteria:指定滿足哪些條件的表、視圖和同義詞可在“Select Tables”對(duì)話框中顯示出來(lái)。例如DEV用戶下銷(xiāo)售子系統(tǒng)的表都以SALE開(kāi)頭,則可以用SALE%、DEV、“TABLE”、“VIEW”指定只顯示DEV用戶以SALE開(kāi)頭的表和視圖;
Asynchronous:選擇該項(xiàng),可在一個(gè)復(fù)雜的SQL語(yǔ)句執(zhí)行過(guò)程中,返回之一行結(jié)果前,切換到其他操作;
Number of Seconds to Wait:若上一項(xiàng)選中,還可進(jìn)一步通過(guò)該項(xiàng)指定檢索數(shù)據(jù)時(shí),等待數(shù)據(jù)庫(kù)響應(yīng)的時(shí)間;
Retrieve Blocking Factor:決定數(shù)據(jù)窗口對(duì)象一次可從數(shù)據(jù)庫(kù)取出的記錄數(shù);
Number of SQL Staments Cached:PB可將數(shù)據(jù)窗口對(duì)象產(chǎn)生的SQL語(yǔ)句和嵌入式SQL語(yǔ)句保存在SQL語(yǔ)句緩沖區(qū),該參數(shù)指定緩沖區(qū)為PB保留的SQL語(yǔ)句數(shù)目。該數(shù)值可由下式計(jì)算:SQLCache=服務(wù)器OPEN—CURSORS數(shù)-5(保留的游標(biāo)數(shù))-本連接預(yù)期使用的更大游標(biāo)數(shù);
Disable Bind:指定是否將輸入變量與SQL語(yǔ)句綁定,此參數(shù)影響PB為數(shù)據(jù)窗口對(duì)象生成INSERT語(yǔ)句的方式;
Static Bind:數(shù)據(jù)窗口對(duì)象檢索數(shù)據(jù)前是否檢測(cè)SELECT語(yǔ)句的合法性;
在Syntax頁(yè),還可指定日期、時(shí)間的格式等。在Preview頁(yè)可查看Database Profile設(shè)置對(duì)應(yīng)的PowerScript寫(xiě)法。
Oracle存儲(chǔ)過(guò)程的使用
歸納起來(lái)PB6.0中調(diào)用Oracle存儲(chǔ)過(guò)程有以下四種方法。
方法一:以關(guān)鍵字RPCFUNC聲明存儲(chǔ)過(guò)程;
方法二:以DECLARE PROCEDURE語(yǔ)句聲明存儲(chǔ)過(guò)程;
方法三:以動(dòng)態(tài)SQL語(yǔ)句實(shí)現(xiàn);
方法四:調(diào)用函數(shù)PBDBMS.Put-Line。
一般情況下,方法一能得到較好的運(yùn)行效率和更完善的功能。因此推薦使用方法一。但是某些類型的存儲(chǔ)過(guò)程只能使用其他方法。以下重點(diǎn)介紹方法一和方法二。
兩種方法比較起來(lái),有以下幾點(diǎn)主要區(qū)別:
1)方法一適用于具有IN、OUT和IN OUT參數(shù)的存儲(chǔ)過(guò)程,而方法二僅支持IN
PB10連接SQL Server的配置
可能初次使用pb10的朋友無(wú)法順利連接到sql server,一方面沒(méi)有了mssql server專用接口了,另一方面數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)換成了“OLE DB”,配置起來(lái)有點(diǎn)不順手!下面就來(lái)介紹pb10中用OLE DB連接sql 2023數(shù)據(jù)庫(kù)。
在安裝pb10的時(shí)候選擇custom/full方式安裝(默認(rèn)的安裝方式不會(huì)安裝ole db接口),next-》如果你沒(méi)有安裝.net則不要選擇列表中的ADO.net….項(xiàng)。一路next完成安裝。
在數(shù)據(jù)庫(kù)畫(huà)板中找到OLE microsoft OLE DB項(xiàng),在其上右鍵新建一個(gè)配置,在彈出的配置窗口中:
profile name:填寫(xiě)配置文件名 //任意即可
provider:選擇數(shù)據(jù)庫(kù)管理系統(tǒng)類型,這里選擇“SQLOLEDB”項(xiàng)
data source:服務(wù)器名(和之前的版本不太一樣)??梢栽谙吕斜碇羞x擇,也可以填入服務(wù)器名或IP地址如:127.0.0.1等。如果上面的provider不是“SQLOLEDB”則此下拉列表中可能沒(méi)有選項(xiàng)。
user ID:用戶名。我的用戶名是默認(rèn)的sa
password:對(duì)應(yīng)上面user ID的密碼,我的密碼是空的,所以不填。
到這里你就可以順利的連接到sql server了。但是連接到哪個(gè)數(shù)據(jù)庫(kù)呢?上面的參數(shù)都沒(méi)有指明,我也找了半天。不要著急,在Extended里填入 “database=數(shù)據(jù)庫(kù)名” 就可以了。(不要引號(hào))
最后的配置文件內(nèi)容為:
// Profile his
SQLCA.DBMS = “OLE DB”
SQLCA.LogId = “sa” //我的用戶名是sa
SQLCA.AutoCommit = False
SQLCA.DBParm = “PROVIDER=’SQLOLEDB’,DATASOURCE=’NETMANAGER’,PROVIDERSTRING=’database=zs'” //我的數(shù)據(jù)庫(kù)名是:zs;datasource后面也可以是IP
至此就完成了pb10下用OLE DB連接sql server的配置!
在PB中使用FoxPro數(shù)據(jù)庫(kù)的方法
重慶工業(yè)管理學(xué)院 蔣波
—- Power Builder 是十分優(yōu)秀的用于客戶/服務(wù)器環(huán)境信息管理系統(tǒng)開(kāi)發(fā)工具,其優(yōu)秀之處不僅是因?yàn)榭梢蚤_(kāi)發(fā)基于客戶/服務(wù)器模式的系統(tǒng),而且簡(jiǎn)單、易學(xué),Power Builder 自身是沒(méi)有數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的,它是首先通過(guò)不同的驅(qū)動(dòng)程序聯(lián)接不同的數(shù)據(jù)庫(kù),再通過(guò)這種聯(lián)接,實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理。Power Builder同時(shí)隨盤(pán)附帶有一個(gè)小型的數(shù)據(jù)庫(kù)管理系統(tǒng):SQL Anywhere,所以用戶也可以直接開(kāi)發(fā)用于單機(jī)的完整的信息管理系統(tǒng)。
—- 本人以前曾開(kāi)發(fā)過(guò)基于FoxPro環(huán)境下的數(shù)據(jù)庫(kù)系統(tǒng),但FoxPro的編程太麻煩,不但要處理數(shù)據(jù)的管理,而且還要花大量的精力處理輸入、輸出的格式等。但有著可視化編程環(huán)境的Power Builder卻不同,處理輸入、輸出是件相當(dāng)簡(jiǎn)單的事情,于是,本人償試用Power Builder來(lái)管理以前的數(shù)據(jù)庫(kù)。 c在Power Builder系統(tǒng)中,使用FoxPro的數(shù)據(jù)庫(kù)有兩種方法:一是利用ODBC聯(lián)接FoxPro數(shù)據(jù)庫(kù);另一種方法是將FoxPro的數(shù)據(jù)庫(kù)轉(zhuǎn)換到SQL Anywhere的數(shù)據(jù)格式。
—- 一、 利用ODBC聯(lián)接FoxPro數(shù)據(jù)庫(kù)
—- 在Power Builder中,直接訪問(wèn)FoxPro數(shù)據(jù)庫(kù)只能通過(guò)ODBC方式。
—- 在開(kāi)發(fā)環(huán)境下,可以直接在PowerBar畫(huà)板上配置ODBC,聯(lián)接FoxPro數(shù)據(jù)庫(kù),方法如下:
單擊Configure ODBC工具鈕
在Installed Drivers目錄框中選擇:Microsoft Foxpro Driver (*.dbf)
單擊“Create”按鈕
命名數(shù)據(jù)源名、選擇版本
取消“使用當(dāng)前工作目錄”選項(xiàng)
單擊選定目錄,選擇被聯(lián)接數(shù)據(jù)庫(kù)所在的目錄
確定退出
—- 通過(guò)ODBC方式聯(lián)接的FoxPro的數(shù)據(jù)庫(kù),一定要滿足FoxPro的數(shù)據(jù)庫(kù)格式,即數(shù)據(jù)庫(kù)文件結(jié)構(gòu)必須是:“32字節(jié)文件描述若干個(gè)32字節(jié)的字段描述 結(jié)構(gòu)描述結(jié)束符(0D) 記錄1,記錄2,…… 文件結(jié)束符(1A)”。由此看來(lái),傳統(tǒng)的DBF數(shù)據(jù)庫(kù)文件均可通過(guò)該方式聯(lián)接。對(duì)于Visual FoxPro環(huán)境下建立的表(Table),其結(jié)構(gòu)與傳統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)是不同的,它在字段描述結(jié)束符(0D)與記錄之間加上了二百多個(gè)字節(jié)的內(nèi)容,但在未納入VFP的數(shù)據(jù)庫(kù)(Dbc)之前,其內(nèi)容為“00”,此時(shí)仍可以通過(guò)這種方式聯(lián)接,一旦納入數(shù)據(jù)庫(kù)中,該段字節(jié)已被填上了其它內(nèi)容,無(wú)法再聯(lián)接。
—- 在Power Builder應(yīng)用程序中,使用事務(wù)處理對(duì)象來(lái)聯(lián)接數(shù)據(jù)庫(kù),這種事務(wù)處理對(duì)象,即有默認(rèn)的SQLCA,用戶也可以自己生成,以方便訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)。在程序中使用事務(wù)處理對(duì)象時(shí),一般必須先指明DBMS、DbParm兩個(gè)屬性,對(duì)于FoxPro數(shù)據(jù)庫(kù),還必須指明 Database、 userid、servername、幾個(gè)屬性,這一點(diǎn)是與訪問(wèn)其他類型的數(shù)據(jù)庫(kù)不同的地方。
sqlca.dbms=”O(jiān)DBC” // 指定聯(lián)接方式ODBC
sqlca.database=”D:\prg\pubdata” // 指定被聯(lián)接數(shù)據(jù)庫(kù)所在目錄
sqlca.userid=”public” // 用戶識(shí)別號(hào),都為 public
sqlca.servername=”FOXPRO” // 服務(wù)器名:均為FOXPRO
sqlca.dbparm=”C” //數(shù)據(jù)源名
connect using sqlca; // 實(shí)施聯(lián)接
……
—- 通過(guò)對(duì)FoxPro數(shù)據(jù)庫(kù)的聯(lián)接,用戶便可以在Power Builder開(kāi)發(fā)環(huán)境下、應(yīng)用程序中使用這些數(shù)據(jù)庫(kù),快速地開(kāi)發(fā)出自己的信息管理系統(tǒng),實(shí)現(xiàn)對(duì)這些數(shù)據(jù)庫(kù)的維護(hù)與管理。
—- 二、 將DBF文件轉(zhuǎn)換為SQL Anywhere 的DB文件格式
—- 在Power Builder環(huán)境下,附帶有一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)——SQL Anywhere,在Power Builder中利用它,用戶可以直接建立、維護(hù)數(shù)據(jù)庫(kù)。在SQL Anywhere中,數(shù)據(jù)庫(kù)結(jié)構(gòu)雖然與VFP不同,但概念是一致的,即:數(shù)據(jù)庫(kù)是系統(tǒng)中相關(guān)的各種數(shù)據(jù),這些數(shù)據(jù)又因不同用途組織成不同的表,這些表共同構(gòu)成數(shù)據(jù)庫(kù),與傳統(tǒng)的數(shù)據(jù)庫(kù)(DBF)相類比,PB、VFP中的表即是傳統(tǒng)意義的數(shù)據(jù)庫(kù),PB、VFP中的數(shù)據(jù)庫(kù)類似于傳統(tǒng)的數(shù)據(jù)庫(kù)(DBF)文件所在的目錄。SQL Anywhere中提供了將傳統(tǒng)的DBF文件轉(zhuǎn)換為該系統(tǒng)下的數(shù)據(jù)庫(kù)文件(DB)中的表的工具。為了實(shí)現(xiàn)這一轉(zhuǎn)換,用戶必須先建立一個(gè)新的表,再將DBF格式的文件內(nèi)容導(dǎo)入該表中。
—- 對(duì)于DBF文件,必須是傳統(tǒng)意義上的數(shù)據(jù)庫(kù),如FoxPro、dBase、FoxBASE環(huán)境下的數(shù)據(jù)庫(kù)文件。該種數(shù)據(jù)庫(kù)文件嚴(yán)格遵循“數(shù)據(jù)文件==數(shù)據(jù)庫(kù)結(jié)構(gòu)+數(shù)據(jù)庫(kù)記錄”這一格式。其結(jié)構(gòu)如下:“32字節(jié)文件描述若干個(gè)32字節(jié)的字段描述 結(jié)構(gòu)描述結(jié)束符(0D) 記錄1,記錄2,…… 文件結(jié)束符(1A)”
AC
// 文件描述:時(shí)間、長(zhǎng)
00 00
度、記錄長(zhǎng)、記錄數(shù)
4E 41 4D
// 之一個(gè)字段:名、類
[求助]pb中如何連接sql的數(shù)據(jù)庫(kù)????
PowerBuilder8.0動(dòng)態(tài)連接SQL Server技巧
首先,創(chuàng)建一個(gè)connect.ini文件,其內(nèi)容為:
DBMS=MSSQL SQL Server 2023
Database=erpUserId=saDatabasePassword=LogId=saLogPassword=
ServerName=familyDbParm=Lock=Prompt=0其中:erp指您要連接的數(shù)據(jù)庫(kù)名稱;SA是數(shù)據(jù)庫(kù)連接ID,F(xiàn)amily是指您要連接的數(shù)據(jù)庫(kù)的計(jì)算機(jī)名稱,也可以用IP地址來(lái)代替悄喊。接下來(lái),我們就在系統(tǒng)應(yīng)用的Open事件中進(jìn)行編碼: string ls_inifile =”connect.ini”
//進(jìn)行數(shù)據(jù)庫(kù)連接——
sqlca.DBMS = ProfileString (“指運(yùn)罩dbconnect.INI”, “database”, “dbms”, “”)
sqlca.database = ProfileString (“dbconnect.INI”, “database”, “database”, “”)
sqlca.logid = ProfileString (“dbconnect.INI”, “database”, “l(fā)ogid”, “”)
sqlca.logpass = ProfileString (“dbconnect.INI”, “database”, “LogPassWord”,””)
sqlca.servername=ProfileString(“dbconnect.INI”,”database”, “servername”, “”)
sqlca.dbparm = ProfileString (“dbconnect.INI”唯鬧, “database”, “dbparm”, “”)
sqlca.autocommit=true;
connect using sqlca
pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句,pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句詳解與應(yīng)用,在PB中如何用OLE DB來(lái)連接數(shù)據(jù)庫(kù),[求助]pb中如何連接sql的數(shù)據(jù)庫(kù)????的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
當(dāng)前題目:pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句詳解與應(yīng)用(pb6.5數(shù)據(jù)庫(kù)鏈接語(yǔ)句)
網(wǎng)頁(yè)URL:http://fisionsoft.com.cn/article/djccggo.html


咨詢
建站咨詢
