日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VC程序中實(shí)現(xiàn)OLEDB訪問數(shù)據(jù)庫(vcoledb訪問數(shù)據(jù)庫)

在VC程序中,訪問數(shù)據(jù)庫是一項(xiàng)非常普遍的需求。而OLE DB則是一種被廣泛使用的訪問數(shù)據(jù)庫的技術(shù)。本文將介紹如何在VC程序中使用OLE DB來訪問數(shù)據(jù)庫。

成都創(chuàng)新互聯(lián)公司專注于巫山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供巫山營銷型網(wǎng)站建設(shè),巫山網(wǎng)站制作、巫山網(wǎng)頁設(shè)計(jì)、巫山網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造巫山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供巫山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

一、OLE DB的基本概念

1. OLE DB是什么?

OLE DB是一種面向?qū)ο蟮臄?shù)據(jù)庫訪問技術(shù),它提供一個(gè)標(biāo)準(zhǔn)的接口,使得開發(fā)人員可以通過統(tǒng)一的方式訪問不同類型的數(shù)據(jù)源。

2. OLE DB的組成部分

OLE DB由三部分組成:數(shù)據(jù)提供者、數(shù)據(jù)消費(fèi)者和數(shù)據(jù)存儲(chǔ)器。

– 數(shù)據(jù)提供者:提供對(duì)數(shù)據(jù)的訪問,可以是關(guān)系數(shù)據(jù)庫、文件系統(tǒng)等。

– 數(shù)據(jù)消費(fèi)者:消費(fèi)提供者提供的數(shù)據(jù),可以是應(yīng)用程序、報(bào)表等。

– 數(shù)據(jù)存儲(chǔ)器:存儲(chǔ)數(shù)據(jù)的地方,可以是關(guān)系數(shù)據(jù)庫、文件系統(tǒng)等。

3. OLE DB的優(yōu)點(diǎn)

– OLE DB提供了一個(gè)標(biāo)準(zhǔn)的接口,可以方便地訪問不同類型的數(shù)據(jù)源。

– OLE DB性能較好,能夠提供高速的數(shù)據(jù)訪問。

– OLE DB具有很好的擴(kuò)展性和兼容性。

二、在VC程序中使用OLE DB訪問數(shù)據(jù)庫的步驟

1. 創(chuàng)建OLE DB連接對(duì)象

在使用OLE DB訪問數(shù)據(jù)庫時(shí),首先需要?jiǎng)?chuàng)建一個(gè)連接對(duì)象。連接對(duì)象可以通過CoCreateInstance函數(shù)創(chuàng)建。

“`

hr = CoCreateInstance(CLSID_Connection, NULL, CLSCTX_INPROC_SERVER, IID_IDBConnection, (void**)&pConnection);

“`

2. 打開數(shù)據(jù)庫連接

連接對(duì)象被創(chuàng)建后,需要使用其Open函數(shù)打開數(shù)據(jù)庫連接。

“`

hr = pConnection->Open(dsName, userName, password, NULL);

if (FLED(hr))

{

pConnection->Release();

return FALSE;

}

“`

其中,dsName代表數(shù)據(jù)源名稱(可以是DSN或者連接字符串),userName和password分別是登錄數(shù)據(jù)庫時(shí)使用的用戶名和密碼。

3. 創(chuàng)建命令對(duì)象

在打開數(shù)據(jù)庫連接之后,可以創(chuàng)建一個(gè)命令對(duì)象,用于執(zhí)行一些操作,例如執(zhí)行SQL語句、調(diào)用存儲(chǔ)過程等。

“`

hr = pConnection->CreateCommand(NULL, IID_IDBCommand, (IUnknown**)&pCommand);

“`

4. 執(zhí)行SQL語句

創(chuàng)建命令對(duì)象后,可以使用其Execute函數(shù)執(zhí)行SQL語句。

“`

hr = pCommand->Execute(NULL, IID_IRowset, NULL, NULL, (IUnknown**)&pRowset);

“`

其中,pRowset是返回的結(jié)果集對(duì)象。

5. 遍歷結(jié)果集

執(zhí)行SQL語句后,可以使用結(jié)果集對(duì)象pRowset來遍歷結(jié)果集。

“`

hr = pRowset->GetNextRows(NULL, 0, 1, &cRowsObtned, &prghRows);

while (hr == S_OK && cRowsObtned > 0)

{

//遍歷結(jié)果集

}

“`

其中,prghRows是獲取的行對(duì)象句柄,可以使用其GetData函數(shù)獲取具體數(shù)據(jù)。

6. 關(guān)閉連接

在使用完連接后,需要使用其Close函數(shù)關(guān)閉連接。

“`

pConnection->Close();

“`

三、程序示例

下面是一個(gè)使用OLE DB訪問數(shù)據(jù)庫的簡(jiǎn)單示例。該示例使用SQL Server數(shù)據(jù)庫,并執(zhí)行一個(gè)簡(jiǎn)單的查詢語句:

“`

#include “stdafx.h”

#include

#include

#include

#include

int _tmn(int argc, _TCHAR* argv[])

{

HRESULT hr;

//創(chuàng)建連接對(duì)象

CDataSource ds;

hr = ds.OpenFromInitializationString(L”Provider=SQLOLEDB;Data Source=(local);Initial Catalog=MyDatabase;Integrated Security=SSPI;”);

if (FLED(hr))

{

std::cout

return FALSE;

}

//創(chuàng)建命令對(duì)象

CCommand> cmd;

hr = cmd.Open(ds, L”SELECT * FROM MyTable”);

if (FLED(hr))

{

std::cout

return FALSE;

}

//遍歷結(jié)果集

CMyData data;

while (cmd.MoveNext() == S_OK)

{

cmd.GetData(&data);

std::cout

}

//關(guān)閉連接

ds.Close();

return 0;

}

“`

上述代碼首先創(chuàng)建了一個(gè)連接對(duì)象ds,使用OpenFromInitializationString函數(shù)打開一個(gè)SQL Server數(shù)據(jù)庫連接。然后創(chuàng)建了一個(gè)命令對(duì)象cmd,使用Open函數(shù)執(zhí)行了一個(gè)查詢語句。最后遍歷結(jié)果集,輸出查詢結(jié)果,并使用Close函數(shù)關(guān)閉連接。

四、

相關(guān)問題拓展閱讀:

  • 在PB中如何用OLE DB來連接數(shù)據(jù)庫

在PB中如何用OLE DB來連接數(shù)據(jù)庫

幾個(gè)與PB連接數(shù)據(jù)庫相關(guān)的問題

1.Power script 語言里的事務(wù)處理對(duì)象怎么理解

PowerBuilder程序與數(shù)據(jù)庫之間傳遞信息的一個(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ù)庫管理系統(tǒng)的名字,如Sybase,Oracle,ODBC。

2 Database string 要連接的數(shù)據(jù)庫名字。

3 UserID string 連接數(shù)據(jù)庫所用的用戶名。有的DBMS不需要此項(xiàng)。

4 DBPass string 用戶連接數(shù)據(jù)庫的口令。

5 Lock string 這是數(shù)據(jù)庫的保護(hù)級(jí)別,一般不必給出。

6 LogID string 登錄到數(shù)據(jù)庫服務(wù)器上的用戶名,有的DBMS不需要此項(xiàng),但Sybase和Oracle需要指定這個(gè)參數(shù)。碧殲悄

7 LogPass string 登錄到數(shù)據(jù)庫服務(wù)器上的用戶口令。這個(gè)屬性可設(shè)可不設(shè),但Sybase和Oracle需要指定口令。

8 ServerName string 數(shù)據(jù)庫服務(wù)器名。

9 AutoCommit boolean 指定是否將數(shù)據(jù)庫設(shè)置成自動(dòng)提交所有事務(wù)。默認(rèn)是False,也就是說,必須在應(yīng)用程序中進(jìn)行事務(wù)管理,并在適當(dāng)?shù)臅r(shí)候?qū)?shù)據(jù)庫提交事務(wù)。如果選擇True,則每個(gè)事務(wù)都由系統(tǒng)自動(dòng)提交。

10 DBParm string 用于向數(shù)據(jù)庫傳遞特殊信息的屬性。

11 SQLCode long 指示最近一次SQL操作失敗或成功。它的取值為: 返回結(jié)果 0 無錯(cuò)誤。 -1 出現(xiàn)一個(gè)錯(cuò)誤。 100 沒有檢索到數(shù)據(jù)。

12 SQLNRows long 最近一次SQL操作影響的行數(shù),數(shù)據(jù)庫不同其含義也不同。

13 SQLDBCode long 數(shù)據(jù)庫錯(cuò)誤代碼。不同的數(shù)據(jù)庫的含義不同。

14 SQLErrText string 相應(yīng)于SQLDBCode屬性中錯(cuò)誤碼的文字說明。

15 SQLReturnData string 返回DBMS執(zhí)行SQL的附加信息,不同的DBMS其值不同。

2.我常見到做好的PB程序使用.ini文件來控制與數(shù)據(jù)庫連接,可以方便的進(jìn)行應(yīng)用程序移植只需修改其中與數(shù)據(jù)庫連接參數(shù)即可,我想問這些.ini文件只能使用手工編寫嗎,我見到很多.ini文件參數(shù)極多不象手寫好象是機(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ù)庫連接

作者:郭洪建 無法確定網(wǎng)上來源,如有準(zhǔn)確首發(fā),請(qǐng)與本站聯(lián)系

通過這些年的信息系統(tǒng)開發(fā)經(jīng)驗(yàn),使悔渣我對(duì)POWERBUILDER的理解更進(jìn)一步,最近在開發(fā)某子系統(tǒng)模塊時(shí),遇到了一個(gè)奇怪的問題,這里給大家介紹一下.

通常在使用PB和數(shù)據(jù)庫管理系統(tǒng)(DBMS)連接時(shí),使用兩種方式:

一、開放數(shù)據(jù)源接口(ODBC)連接

ODBC是通過支持美國微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中的一部分.在PB 中通過配置 SQLCA.DBMS=‘ODBC’對(duì)象的屬性可使應(yīng)用程序通過ODBC連接到數(shù)據(jù)庫。

ODBC的具體配置包含了數(shù)據(jù)源、驅(qū)動(dòng)程序類型、緩沖池等各種細(xì)節(jié)參數(shù)。

例子:

SQLCA.DBMS = “ODBC”

SQLCA.AutoCommit = False

SQLCA.DBParm=”C,C”

PWD=”‘,C”

二、專用數(shù)據(jù)庫接口

每個(gè)數(shù)據(jù)庫管理系統(tǒng)(DBMS)均提供相應(yīng)的客戶端驅(qū)動(dòng),為了更好的服務(wù)于數(shù)據(jù)庫。

在這里我們使用的是Microsoft sqlserver 2023 的客戶端程序。通過設(shè)置 SQLCA.DBMS =”MSS Microsoft SQL Server” 使客戶端通過專用數(shù)據(jù)庫接口連接到數(shù)據(jù)庫。

該類接口的參數(shù)配置除了服務(wù)器名、數(shù)據(jù)庫名、LogId、LogPass外還包含了連接協(xié)議等用戶驗(yàn)證方式等,可通過服務(wù)器端或客戶端的配置程序進(jìn)行配置。

SQLCA.dbms= “MSS Microsoft SQL Server” //接口類型

SQLCA.database= “master” //數(shù)據(jù)庫

SQLCA.userid= “”

SQLCA.dbpass= “”

SQLCA.logid= “sa”

SQLCA.logpass= “xxxx”

SQLCA.serverName= “.\xxx”//服務(wù)器名

SQLCA.dbparm= “Commit”

SQLCA.autocommit= false

以上介紹的是PB與數(shù)據(jù)庫連接時(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ù)庫連接,這樣可以提高系統(tǒng)的可靠性與執(zhí)行效率。專用數(shù)據(jù)庫的發(fā)行環(huán)節(jié)往往要配上相應(yīng)DBMS客戶端的動(dòng)態(tài)連接庫(DLL),并把它.

PB與ASA數(shù)據(jù)庫連接問題!

一.連接步驟

1.添加數(shù)據(jù)源。WINDOWS98中—-我的電腦—控制面版—-ODBC數(shù)據(jù)源32位—–系統(tǒng)DSN—添加—選擇你使用的數(shù)據(jù)庫

2.在工具條上點(diǎn)擊DB PROFILE 選擇已建立好的數(shù)據(jù)庫連接,單擊EDIT在彈出的對(duì)話框中選PREVIEW里面就是連接數(shù)據(jù)庫的語句,COPY就OK了。

二.DB_profile寫法(以lin.com的tax例程為例)

tax.ini

DBMS=ODBC

Database=test

DbParm=c

三.打包所需文件

參看以下文章:

四.容易出現(xiàn)的問題及解決方法

導(dǎo)致ASA數(shù)據(jù)庫無法連接的問題有以下幾種:

1、ODBC配置錯(cuò)誤。沒有配置數(shù)據(jù)源,數(shù)據(jù)庫的用戶名或口令錯(cuò)誤等都會(huì)導(dǎo)致數(shù)據(jù)庫無法連接。

解決的辦法:檢查數(shù)據(jù)源的配置,如果沒有在ODBC中配置數(shù)據(jù)源則按照向?qū)砑訑?shù)據(jù)源即可;口令錯(cuò)誤只需改為正確的即可。

2、連接時(shí)提示LOG文件錯(cuò)誤。這樣的問題大多出現(xiàn)在重裝系統(tǒng)后、源碼移植到其他系統(tǒng)、數(shù)據(jù)庫文件路徑改變之后。

解決的辦法:在創(chuàng)建ASA數(shù)據(jù)庫的時(shí)候不創(chuàng)建LOG文件,如果已經(jīng)創(chuàng)建了LOG文件則可以利用PB自帶的工具Sybase central來去掉LOG文件和數(shù)據(jù)庫文件的關(guān)聯(lián)。操作步驟如下:

a)啟動(dòng)Sybase central在左邊的樹型目錄中選擇Utilities;

b)雙擊右邊出現(xiàn)的條目中的change log file settings,直接next;

c)點(diǎn)Browse選擇需要去除log文件的數(shù)據(jù)庫文件,選好后next;

d)這里你會(huì)看到一些數(shù)據(jù)庫的信息,log文件名,文件大小等。next;

e)去掉Maintin the following transaction log file前面的對(duì)勾,F(xiàn)inish;

f)配置ODBC連接數(shù)據(jù)庫就可以了。

3、數(shù)據(jù)庫文件損壞。此類錯(cuò)誤一般不常見,可能由于病毒破壞或誤操作引起。

解決的辦法:如果以前有備份用備份文件覆蓋原文件即可,如果沒有備份文件就只能重新建庫了!

PB8如何使用OLE DB練到ASA數(shù)據(jù)庫

(本文來自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中通過OLE DB連接到ASA數(shù)據(jù)庫的步驟如下:

在命令提示符下鍵入如下命令,啟動(dòng) ASADEMO:

dbsrv7 asademo -x tcpip -n asademo

(“asademo” – 你選擇運(yùn)行的數(shù)據(jù)庫. 確定你沒有正在運(yùn)行一個(gè)同名的數(shù)據(jù)庫,否則會(huì)出錯(cuò))

有兩個(gè)方法通過 OLE DB 連接到 ASA Server:

1) OLE DB/ODBC bridge

對(duì)于這種連接,你必須在數(shù)據(jù)庫參數(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)

你可以通過一個(gè)擴(kuò)展名為.udl的單獨(dú)的文件,提供連接信息,在OLE DB中訪問數(shù)據(jù).這個(gè)文件與 Microsoft DataLink (.udl) file 類似. 你必須在系統(tǒng)中安裝 Datalink API 以便于創(chuàng)建和使用 .udl 文件.

創(chuàng)建 .udl文件的方法:

在當(dāng)前目錄里的空白處單擊鼠標(biāo)右鍵,選擇新建文件,選擇 Microsoft Data Link.如果沒有創(chuàng)建 Microsoft Data Link 的選項(xiàng),需要?jiǎng)?chuàng)建一個(gè)文本文件,然后更改擴(kuò)展名為 .udl.雙擊這個(gè)文件,添加連接信息.詳情請(qǐng)?jiān)L問msdn.microsoft.com 搜索 Data Link(此處原文有亂碼,具體內(nèi)容不詳).

【討論】pb連接MS SQL Server問題!

一.連接步驟

1)服務(wù)器安裝SQL Server并啟動(dòng),創(chuàng)建數(shù)據(jù)庫。

2)客戶機(jī)安裝SQL Server客戶端。

3)啟動(dòng)PB,配置數(shù)據(jù)源描述(通過直連接口,不建議用ODBC)。

4)連接。

二.DB_profile的寫法

在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ù)庫

LogId:sql server的登陸賬號(hào)

LogPass=口令

servername:允許數(shù)據(jù)庫服務(wù)器連接的計(jì)算機(jī)名

autocommit:控制pb 是工作在事務(wù)處理范圍內(nèi)還是工作在事務(wù)處理范圍外

dbparm:dbms的專用連接參數(shù)

以下參數(shù):

language:在顯示錯(cuò)誤消息和日期格式時(shí)指定要使用的語言,在服務(wù)器上必須設(shè)置該直.

lock:事務(wù)處理隔離層

log:文本和圖像數(shù)據(jù)的更新是否應(yīng)該紀(jì)錄到事務(wù)日志中.

systemprocs:系統(tǒng)存儲(chǔ)過程和用戶定義的存儲(chǔ)過程是否顯示在各種各樣的pb畫板中.

pbcatalogowner:pb存儲(chǔ)中表的缺省者.

async:允許在服務(wù)器上進(jìn)行同步操作.0:同步,1:異步

dbgettime:當(dāng)async=1時(shí),使用該參數(shù)設(shè)置用戶在檢索行時(shí)pb等待來自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:控制返回的文本字段的更大長度而不用將文本作為二進(jìn)制大型數(shù)據(jù)對(duì)象來處理.

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分別是前端開發(fā)工具和RDBMS的主流產(chǎn)品。PB提供了兩種與Oracle連接的接口:PowerSoft內(nèi)置的數(shù)據(jù)庫接口(Native Database Interface)和ODBC接口。本文介紹使用PB6.0內(nèi)置Oracle接口的方法,包括數(shù)據(jù)描述文件的設(shè)置、存儲(chǔ)過程的調(diào)用和存儲(chǔ)過程作為數(shù)據(jù)窗口數(shù)據(jù)源的操作方法等內(nèi)容,使用的RDBMS的Oracle 7.3。

PowerBuilder與Oracle的連接

假定已安裝Oracle客戶端應(yīng)用程序??捎肧qlplus或Tnsping等是否能連接到Oracle數(shù)據(jù)庫,確定在SQLNET配置文件中使用的數(shù)據(jù)庫別名(Database Alias,又稱服務(wù)器名,Server Name)。如有疑問,可在Oracle客戶端程序目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括SQLNET應(yīng)用程序的安裝目錄(如C:\ORAWIN95\BIN)。

進(jìn)入PB的Database Profiles畫筆,可看到所有已安裝的數(shù)據(jù)庫接口(PB6.0缺省安裝的是Oracle 7.3版的接口,如使用低版本的Oracle,需在安裝時(shí)指定),選擇“O73 Oracle 7.3”,點(diǎn)擊“New”按鈕,進(jìn)入Database Profile Setup對(duì)話框。在“Connection”頁輸入下列信息:

Profile Name:為該Database Profile起一個(gè)有意義的名稱;

Server:TNS:ServerName,其中ServerName為上述數(shù)據(jù)庫別名(服務(wù)器名),如@TNS:ORA73;

Login ID:Oracle數(shù)據(jù)庫中實(shí)際的用戶名,由于PB初次連接到數(shù)據(jù)庫時(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ì)用戶則無特殊要求;

Password:該用戶的口令。

設(shè)置上述內(nèi)容后,即可連上Oracle。為優(yōu)化數(shù)據(jù)庫連接,還可設(shè)置下列選項(xiàng):

Prompt for Database Information:連接時(shí)是否提示用戶輸入用戶名和口令;

Generate Trace:?jiǎn)?dòng)DB跟蹤工具,跟蹤連接;

Thread Safe:開發(fā)需要多線程環(huán)境支持的分布式應(yīng)用時(shí),選擇該項(xiàng)。缺省為未選,適用于非分布應(yīng)用;

PBDBMS:與存儲(chǔ)過程調(diào)用方式有關(guān)的參數(shù)。Oracle為7.2或更高版本時(shí),清除該選項(xiàng),此時(shí)帶IN OUT參數(shù)的存儲(chǔ)過程可作為數(shù)據(jù)窗口數(shù)據(jù)源。7.2版本以下,選擇該項(xiàng),調(diào)用PBDBMS.Put-Line建立存儲(chǔ)過程的SQL語句,缺省是選中;

Commit on Disconnect:斷開連接時(shí),指定提交或回退未提交的事務(wù);

Case Sensitive:連接的Oracle服務(wù)器是否區(qū)分大小寫。注意該項(xiàng)選中時(shí),所有主鍵、包含主鍵的表名、外鍵須全為大寫字符。

PowerBuilder Catalog Tables Owner:指定擁有PB系統(tǒng)表的用戶,缺省為“SYSTEM”。如果要使用多種顯示格式或有效性規(guī)則,可以在不同的用戶下建立幾套系統(tǒng)表;

Table Criteria:指定滿足哪些條件的表、視圖和同義詞可在“Select Tables”對(duì)話框中顯示出來。例如DEV用戶下銷售子系統(tǒng)的表都以SALE開頭,則可以用SALE%、DEV、“TABLE”、“VIEW”指定只顯示DEV用戶以SALE開頭的表和視圖;

Asynchronous:選擇該項(xiàng),可在一個(gè)復(fù)雜的SQL語句執(zhí)行過程中,返回之一行結(jié)果前,切換到其他操作;

Number of Seconds to Wait:若上一項(xiàng)選中,還可進(jìn)一步通過該項(xiàng)指定檢索數(shù)據(jù)時(shí),等待數(shù)據(jù)庫響應(yīng)的時(shí)間;

Retrieve Blocking Factor:決定數(shù)據(jù)窗口對(duì)象一次可從數(shù)據(jù)庫取出的記錄數(shù);

Number of SQL Staments Cached:PB可將數(shù)據(jù)窗口對(duì)象產(chǎn)生的SQL語句和嵌入式SQL語句保存在SQL語句緩沖區(qū),該參數(shù)指定緩沖區(qū)為PB保留的SQL語句數(shù)目。該數(shù)值可由下式計(jì)算:SQLCache=服務(wù)器OPEN—CURSORS數(shù)-5(保留的游標(biāo)數(shù))-本連接預(yù)期使用的更大游標(biāo)數(shù);

Disable Bind:指定是否將輸入變量與SQL語句綁定,此參數(shù)影響PB為數(shù)據(jù)窗口對(duì)象生成INSERT語句的方式;

Static Bind:數(shù)據(jù)窗口對(duì)象檢索數(shù)據(jù)前是否檢測(cè)SELECT語句的合法性;

在Syntax頁,還可指定日期、時(shí)間的格式等。在Preview頁可查看Database Profile設(shè)置對(duì)應(yīng)的PowerScript寫法。

Oracle存儲(chǔ)過程的使用

歸納起來PB6.0中調(diào)用Oracle存儲(chǔ)過程有以下四種方法。

方法一:以關(guān)鍵字RPCFUNC聲明存儲(chǔ)過程;

方法二:以DECLARE PROCEDURE語句聲明存儲(chǔ)過程;

方法三:以動(dòng)態(tài)SQL語句實(shí)現(xiàn);

方法四:調(diào)用函數(shù)PBDBMS.Put-Line。

一般情況下,方法一能得到較好的運(yùn)行效率和更完善的功能。因此推薦使用方法一。但是某些類型的存儲(chǔ)過程只能使用其他方法。以下重點(diǎn)介紹方法一和方法二。

兩種方法比較起來,有以下幾點(diǎn)主要區(qū)別:

1)方法一適用于具有IN、OUT和IN OUT參數(shù)的存儲(chǔ)過程,而方法二僅支持IN

PB10連接SQL Server的配置

可能初次使用pb10的朋友無法順利連接到sql server,一方面沒有了mssql server專用接口了,另一方面數(shù)據(jù)庫管理系統(tǒng)(DBMS)換成了“OLE DB”,配置起來有點(diǎn)不順手!下面就來介紹pb10中用OLE DB連接sql 2023數(shù)據(jù)庫。

在安裝pb10的時(shí)候選擇custom/full方式安裝(默認(rèn)的安裝方式不會(huì)安裝ole db接口),next-》如果你沒有安裝.net則不要選擇列表中的ADO.net….項(xiàng)。一路next完成安裝。

在數(shù)據(jù)庫畫板中找到OLE microsoft OLE DB項(xiàng),在其上右鍵新建一個(gè)配置,在彈出的配置窗口中:

profile name:填寫配置文件名 //任意即可

provider:選擇數(shù)據(jù)庫管理系統(tǒng)類型,這里選擇“SQLOLEDB”項(xiàng)

data source:服務(wù)器名(和之前的版本不太一樣)??梢栽谙吕斜碇羞x擇,也可以填入服務(wù)器名或IP地址如:127.0.0.1等。如果上面的provider不是“SQLOLEDB”則此下拉列表中可能沒有選項(xiàng)。

user ID:用戶名。我的用戶名是默認(rèn)的sa

password:對(duì)應(yīng)上面user ID的密碼,我的密碼是空的,所以不填。

到這里你就可以順利的連接到sql server了。但是連接到哪個(gè)數(shù)據(jù)庫呢?上面的參數(shù)都沒有指明,我也找了半天。不要著急,在Extended里填入 “database=數(shù)據(jù)庫名” 就可以了。(不要引號(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ù)庫名是:zs;datasource后面也可以是IP

至此就完成了pb10下用OLE DB連接sql server的配置!

在PB中使用FoxPro數(shù)據(jù)庫的方法

重慶工業(yè)管理學(xué)院 蔣波

—- Power Builder 是十分優(yōu)秀的用于客戶/服務(wù)器環(huán)境信息管理系統(tǒng)開發(fā)工具,其優(yōu)秀之處不僅是因?yàn)榭梢蚤_發(fā)基于客戶/服務(wù)器模式的系統(tǒng),而且簡(jiǎn)單、易學(xué),Power Builder 自身是沒有數(shù)據(jù)庫管理系統(tǒng)(DBMS)的,它是首先通過不同的驅(qū)動(dòng)程序聯(lián)接不同的數(shù)據(jù)庫,再通過這種聯(lián)接,實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理。Power Builder同時(shí)隨盤附帶有一個(gè)小型的數(shù)據(jù)庫管理系統(tǒng):SQL Anywhere,所以用戶也可以直接開發(fā)用于單機(jī)的完整的信息管理系統(tǒng)。

—- 本人以前曾開發(fā)過基于FoxPro環(huán)境下的數(shù)據(jù)庫系統(tǒng),但FoxPro的編程太麻煩,不但要處理數(shù)據(jù)的管理,而且還要花大量的精力處理輸入、輸出的格式等。但有著可視化編程環(huán)境的Power Builder卻不同,處理輸入、輸出是件相當(dāng)簡(jiǎn)單的事情,于是,本人償試用Power Builder來管理以前的數(shù)據(jù)庫。 c在Power Builder系統(tǒng)中,使用FoxPro的數(shù)據(jù)庫有兩種方法:一是利用ODBC聯(lián)接FoxPro數(shù)據(jù)庫;另一種方法是將FoxPro的數(shù)據(jù)庫轉(zhuǎn)換到SQL Anywhere的數(shù)據(jù)格式。

—- 一、 利用ODBC聯(lián)接FoxPro數(shù)據(jù)庫

—- 在Power Builder中,直接訪問FoxPro數(shù)據(jù)庫只能通過ODBC方式。

—- 在開發(fā)環(huán)境下,可以直接在PowerBar畫板上配置ODBC,聯(lián)接FoxPro數(shù)據(jù)庫,方法如下:

單擊Configure ODBC工具鈕

在Installed Drivers目錄框中選擇:Microsoft Foxpro Driver (*.dbf)

單擊“Create”按鈕

命名數(shù)據(jù)源名、選擇版本

取消“使用當(dāng)前工作目錄”選項(xiàng)

單擊選定目錄,選擇被聯(lián)接數(shù)據(jù)庫所在的目錄

確定退出

—- 通過ODBC方式聯(lián)接的FoxPro的數(shù)據(jù)庫,一定要滿足FoxPro的數(shù)據(jù)庫格式,即數(shù)據(jù)庫文件結(jié)構(gòu)必須是:“32字節(jié)文件描述若干個(gè)32字節(jié)的字段描述 結(jié)構(gòu)描述結(jié)束符(0D) 記錄1,記錄2,…… 文件結(jié)束符(1A)”。由此看來,傳統(tǒng)的DBF數(shù)據(jù)庫文件均可通過該方式聯(lián)接。對(duì)于Visual FoxPro環(huán)境下建立的表(Table),其結(jié)構(gòu)與傳統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)是不同的,它在字段描述結(jié)束符(0D)與記錄之間加上了二百多個(gè)字節(jié)的內(nèi)容,但在未納入VFP的數(shù)據(jù)庫(Dbc)之前,其內(nèi)容為“00”,此時(shí)仍可以通過這種方式聯(lián)接,一旦納入數(shù)據(jù)庫中,該段字節(jié)已被填上了其它內(nèi)容,無法再聯(lián)接。

—- 在Power Builder應(yīng)用程序中,使用事務(wù)處理對(duì)象來聯(lián)接數(shù)據(jù)庫,這種事務(wù)處理對(duì)象,即有默認(rèn)的SQLCA,用戶也可以自己生成,以方便訪問多個(gè)數(shù)據(jù)庫。在程序中使用事務(wù)處理對(duì)象時(shí),一般必須先指明DBMS、DbParm兩個(gè)屬性,對(duì)于FoxPro數(shù)據(jù)庫,還必須指明 Database、 userid、servername、幾個(gè)屬性,這一點(diǎn)是與訪問其他類型的數(shù)據(jù)庫不同的地方。

sqlca.dbms=”O(jiān)DBC” // 指定聯(lián)接方式ODBC

sqlca.database=”D:\prg\pubdata” // 指定被聯(lián)接數(shù)據(jù)庫所在目錄

sqlca.userid=”public” // 用戶識(shí)別號(hào),都為 public

sqlca.servername=”FOXPRO” // 服務(wù)器名:均為FOXPRO

sqlca.dbparm=”C” //數(shù)據(jù)源名

connect using sqlca; // 實(shí)施聯(lián)接

……

—- 通過對(duì)FoxPro數(shù)據(jù)庫的聯(lián)接,用戶便可以在Power Builder開發(fā)環(huán)境下、應(yīng)用程序中使用這些數(shù)據(jù)庫,快速地開發(fā)出自己的信息管理系統(tǒng),實(shí)現(xiàn)對(duì)這些數(shù)據(jù)庫的維護(hù)與管理。

—- 二、 將DBF文件轉(zhuǎn)換為SQL Anywhere 的DB文件格式

—- 在Power Builder環(huán)境下,附帶有一個(gè)數(shù)據(jù)庫系統(tǒng)——SQL Anywhere,在Power Builder中利用它,用戶可以直接建立、維護(hù)數(shù)據(jù)庫。在SQL Anywhere中,數(shù)據(jù)庫結(jié)構(gòu)雖然與VFP不同,但概念是一致的,即:數(shù)據(jù)庫是系統(tǒng)中相關(guān)的各種數(shù)據(jù),這些數(shù)據(jù)又因不同用途組織成不同的表,這些表共同構(gòu)成數(shù)據(jù)庫,與傳統(tǒng)的數(shù)據(jù)庫(DBF)相類比,PB、VFP中的表即是傳統(tǒng)意義的數(shù)據(jù)庫,PB、VFP中的數(shù)據(jù)庫類似于傳統(tǒng)的數(shù)據(jù)庫(DBF)文件所在的目錄。SQL Anywhere中提供了將傳統(tǒng)的DBF文件轉(zhuǎn)換為該系統(tǒng)下的數(shù)據(jù)庫文件(DB)中的表的工具。為了實(shí)現(xiàn)這一轉(zhuǎn)換,用戶必須先建立一個(gè)新的表,再將DBF格式的文件內(nèi)容導(dǎo)入該表中。

—- 對(duì)于DBF文件,必須是傳統(tǒng)意義上的數(shù)據(jù)庫,如FoxPro、dBase、FoxBASE環(huán)境下的數(shù)據(jù)庫文件。該種數(shù)據(jù)庫文件嚴(yán)格遵循“數(shù)據(jù)文件==數(shù)據(jù)庫結(jié)構(gòu)+數(shù)據(jù)庫記錄”這一格式。其結(jié)構(gòu)如下:“32字節(jié)文件描述若干個(gè)32字節(jié)的字段描述 結(jié)構(gòu)描述結(jié)束符(0D) 記錄1,記錄2,…… 文件結(jié)束符(1A)”

AC

// 文件描述:時(shí)間、長

00 00

度、記錄長、記錄數(shù)

4E 41 4D

// 之一個(gè)字段:名、類

關(guān)于vc ole db訪問數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


網(wǎng)站名稱:VC程序中實(shí)現(xiàn)OLEDB訪問數(shù)據(jù)庫(vcoledb訪問數(shù)據(jù)庫)
文章源于:http://www.dlmjj.cn/article/dpjdecs.html