1、在powerbuilder軟體界面,點擊上面資料庫圖標。
2、彈出Database Profiles窗口,在此窗口內,雙擊圖中標注ODBC Administrator項。
3、在彈出的ODBC數據源管理器中點擊右側的添加按鈕。
4、在彈出的創建新數據源窗口中,點擊最下方SQL Server Native Client 10.0項。
5、彈出創建到SQL Server的新數據源窗口,輸入任意名稱、描述,伺服器處輸入(local),點擊下一步。
6、在新的界面最上方「更改默認資料庫為」前勾選,下方選擇你的程序想要連接的資料庫。點擊下一步。
7、一直點擊下一步直到如圖界面,到此數據源的添加基本完成,點擊下方測試數據源,提示成功後關閉此界面即可;如果不成功請從頭再次操作,注意每一個小細節。
8、上個步驟關閉窗口後,回到原來的ODBC數據源管理器窗口,可以看到列表上方出現了剛剛創建的數據源,關閉此窗口。
9、回到Database Profiles窗口,如圖,點擊ODB ODBC,然後點擊右側New按鈕。
10、新彈出Database Profile Setup-ODBC窗口,填寫Profile Name,下拉列表選擇對應Data Source項。(如果你的資料庫沒有設置登錄密碼,則下方的user id和password項不需填寫)
11、中間穿插一步,如圖,在這個窗口上方點擊Preview標簽,復制下方的一段代碼,留待後面使用。
12、點擊OK,關閉此窗口。
13、點擊新添加的那一項,如圖,點擊右側Connect按鈕,然後資料庫小圖標會出現一個綠色小勾。到這里,連接資料庫的所有配置已經完成,只需在程序中添加連接資料庫的代碼就可以了。
14、我在我的一個程序窗口的open事件中添加了剛剛復制的那段代碼,這樣這個窗口在打開時就可以直接連上資料庫了。
『貳』 菜鳥我想在PB中直接打開資料庫在線等
不要直接使用滑鼠右鍵去打開,直接寫SQL就行了。
在ISQL Session頁里寫上SQL語句,以「;」結束,查詢,然後就有結果了。
ISQL Session頁在Results旁邊,注意查看。
『叄』 怎麼用pb在程序里備份及恢復資料庫
可以用動態的數據窗口來實現將數據表中的信息存放到文本文件和dbf文件進行備份,然後再進行導入即數據恢復。具體的做法為:
1、在窗口中添加一個數據窗口控制項,如數據窗口控制項命名為dw_pip
2、在窗口中添加一個名為SAVE的保存按鈕。在SAVE按鈕中添加程序如下:
string sql_syntax,dwsyntax_str
string errors,S_filnam
string table_name
//編寫數據查尋條件
sql_syntax=查詢條件
//檢索數據窗口內容
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
S_filnam="d:\del\test_del.txt" //要存放的文件名(自己可以設定,但必須保證該路徑存在),若存為dbf類型,則將.txt後綴改為.dbf後綴
dw_pip.SaveAs(S_filnam, Text! , FALSE)
3、在窗口中添加名為import導入按鈕,在本按鈕中添加以下程序
string sql_syntax,dwsyntax_str
string errors,S_filnam
sql_syntax =要插入的數據表檢索條件
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
//導入文件內容
ii=dw_pip.ImportFile("D:\del\test_del.TXT") //文件名為SAVE按鈕中生成的文件名
dw_pip.update(true,true)
4、結束,調試運行
『肆』 本人PB菜鳥求高手,PB窗口中按鈕與數據窗口的問題,急用
dw_1.settransobject(sqlca)
dw_1.retrieve() //如果有參數要加上參數.
取前三行數據是什麼意思,是只檢索出三行還是要得到前三行的數據
如果僅僅是檢索出三行數據就要修改dw的sql 源,方法很多,如:select top 3 * from .....
如果是要得到前三行的數據,可以用for ll_row =1 to dw_1.rowcount() ..... next 進行循環獲得。
『伍』 PB數據窗口在運行過程中Button的問題
你說的情況是應該不可能實現的,
你應該知道,數據窗口中某欄位的x值是絕對的,它不會隨你將滾動條拽到哪裡而變化,
除非知道當前顯示在數據窗口控制項中的列相對於父窗口中某點的x,但據我所知應沒有取當前顯示為哪列的函數,
而且,即便可以實現,效果一定會非常差,因為PB不像VB、VC那樣,可以做到控制項不閃爍、平滑的移動,那Button移動起來必定閃爍的很難看。
用其他辦法來取代吧,很多方式,你喜歡就參考,不喜歡就繼續研究,例如:
1、數據窗口左右分欄顯示,裡面Button的列固定顯示在左邊,右邊顯示其他全部列,在主窗口的open()事件里加:
dw_1.HSplitScroll = true //--數據窗口左右分欄
dw_1.Object.DataWindow.HorizontalScrollSplit = dw_1.object.列名.x //--設置分欄的分隔線位置
2、在窗口上加按鈕,呵呵,無論數據窗口滾動到哪,獨立的按鈕也不會動嘛,相關的腳本就寫在按鈕里吧。
『陸』 pb中資料庫表的結構在哪個表
PowerBuilder是目前公認的、最佳的資料庫前端開發工具之一。在實際開發應用中,經常會遇到修改資料庫表結構的情況。用PowerBuilder修改資料庫表結構與用Foxbase修改資料庫結構不同。在PowerBuilder中,除可以在資料庫表結構中添加欄位名外,無法直接修改資料庫表結構,如刪除某個欄位名或類型或欄位名長度等,都會導致資料庫表記錄的丟失。我們通過實踐探索,總結了幾種方法僅供大家參考,請大家批評指正。一、 修改資料庫表結構,資料庫表中沒有記錄方法1:將表結構以Export Table 文件格式輸出。從Database中選擇要修改的資料庫表Table。從Objects中選擇Export Table/View Syntax to Log,取名保存即選Save Log As,以*.sql格式保存。從Objects中選擇Database Administration。從File中選擇Dos Open,選文件名File name,*.sql,打開進行修改。從Objects中選擇ExecuteSQL。即產生一新的資料庫表結構。注意:Table名不要同名。方法2:將表結構以SQL Syntax 文件格式輸出。從Database中選擇要修改的資料庫表Table。按Preview鍵。從File中選擇Save Rows as,File Format 選SQL Syntax,取表名*.sql保存。從File中選擇Dos Open,打開表名*.sql,進行修改。取表名後,ExecuteSQL。注意:此種方法沒有生成Primary Key。二、 修改資料庫表結構,保存原資料庫表中記錄方法1:先修改資料庫表結構,用SQL語句轉移資料庫表中記錄將表1生成表1.sql,修改結構,將表1另取名為表2。運行表2.sql,生成表2。此時產生一新的資料庫表結構。從Objects中選擇Database Administration,寫SQL Statement: Insertinto 新表名select *from 舊表名; ExecuteSQL。將舊表中所有欄位內容轉入新表中。刪除表1,從File中選擇Dos Open,打開文件名File name即表2.sql,將表2統一改為表1.運行表1.sql,生成新結構的表1,此時無記錄。按步驟3,將表2中的記錄全部轉入表1中。若將部分欄位轉入,寫SQL Statement:insert into 新表名(欄位1,欄位2......)select 欄位1,欄位2......from 舊表名;ExecuteSQL。舊表中部分欄位內容轉入新表中。方法2:將表結構和記錄以SQL Syntax 文件格式輸出。從Database中選擇要修改的資料庫表Table,按Preview鍵。從File中選擇Save Rows as,FileFormat 選SQL Syntax,取表名*.sql保存。從File中選擇Dos Open,打開表名*.sql,進行修改。取表名後,ExecuteSQL。方法3:將表結構和記錄以TXT 文件格式輸出。從Database中打開資料庫表,按Preview鍵。從File中選擇Save Rows as,FileFormat 選TXT,取表名*.txt保存。將表生成表.sql,修改結構,運行表.sql,此時產生一新的資料庫表結構。從Database中打開資料庫表,按Preview鍵。從Rows中選擇Import,選*.txt。從File中選擇Save changes to Database。注意:方法1適用於任何修改資料庫表結構的任何情況。方法2和方法3對刪除欄位名不適用。另外,用Message傳遞參數必須注意以下幾點:1. 最好執行完窗口操作(打開或關閉)後馬上將Message消息對象的值傳給變數,這是因為Message是全局使用的對象,每一次事件被觸發或傳送時都會被使用,其他Script 也有可能用到Message消息對象,因此它有被覆蓋的危險。2.避免傳送NULL對象,以免程序出錯。
『柒』 pb如何向資料庫表中添加內容
無論怎麼添加,首先你必須要配置PB的資料庫連接,在DataBase Painter裡面。配置資料庫連接。
配置成功之後,可以直接在DataBase Painter裡面,打開你配置的資料庫,選擇你要添加數據的表,然後點右鍵,edit data,打開所有的數據,然後上方菜單里分別有兩個按鈕,insert和save,insert表示增加一個空行,你可以在裡面編輯數據,save表示把數據保存到表中。這樣可以實現,不過都是單條的自己手動寫進去的。
這里還可以導入數據,不過要格式匹配,包括欄位的數量,順序,類型導入模板,和你查詢的結構必須匹配才可以。這個所謂的查詢,可以使用edit data,打開的框架,還可以自己寫一個查詢語句,在isql session頁寫查詢語句點execute按鈕執行查詢,不過這個執行的查詢,要單表,否則不知道保存哪個表了。
還可以自己寫程序插入。利用數據窗口,或者利用insert 語句插入數據。
『捌』 在PB中如何用OLE DB來連接資料庫
幾個與PB連接資料庫相關的問題
1.Power script 語言里的事務處理對象怎麼理解
PowerBuilder程序與資料庫之間傳遞信息的一個結構變數,共有15個成員.你可以詳細列表它的所有成員看看它的組成.PB的應用程序會初始化一個全局的結構體變數,SQLCA,當然你也可以自定義一個自己的事務對象.
1 DBMS string 所使用的資料庫管理系統的名字,如Sybase,Oracle,ODBC。
2 Database string 要連接的資料庫名字。
3 UserID string 連接資料庫所用的用戶名。有的DBMS不需要此項。
4 DBPass string 用戶連接資料庫的口令。
5 Lock string 這是資料庫的保護級別,一般不必給出。
6 LogID string 登錄到資料庫伺服器上的用戶名,有的DBMS不需要此項,但Sybase和Oracle需要指定這個參數。
7 LogPass string 登錄到資料庫伺服器上的用戶口令。這個屬性可設可不設,但Sybase和Oracle需要指定口令。
8 ServerName string 資料庫伺服器名。
9 AutoCommit boolean 指定是否將資料庫設置成自動提交所有事務。默認是False,也就是說,必須在應用程序中進行事務管理,並在適當的時候對資料庫提交事務。如果選擇True,則每個事務都由系統自動提交。
10 DBParm string 用於向資料庫傳遞特殊信息的屬性。
11 SQLCode long 指示最近一次SQL操作失敗或成功。它的取值為: 返回結果 0 無錯誤。 -1 出現一個錯誤。 100 沒有檢索到數據。
12 SQLNRows long 最近一次SQL操作影響的行數,資料庫不同其含義也不同。
13 SQLDBCode long 資料庫錯誤代碼。不同的資料庫的含義不同。
14 SQLErrText string 相應於SQLDBCode屬性中錯誤碼的文字說明。
15 SQLReturnData string 返回DBMS執行SQL的附加信息,不同的DBMS其值不同。
2.我常見到做好的PB程序使用.ini文件來控制與資料庫連接,可以方便的進行應用程序移植只需修改其中與資料庫連接參數即可,我想問這些.ini文件只能使用手工編寫嗎,我見到很多.ini文件參數極多不象手寫好象是機器生成的,不知道如何生成啊?請大家指教
1、其實PB中在新建---點TOOL----FILE EDIT 可以生成(編輯)INI文件。最直接就是工具欄中的EDIT圖標。
2、機器生成代碼是:點DATABASE圖標-----選擇連接方式。如:選 MSS MICROSOFT SQL SERVER 右鍵-NEW PROFILE 按要求填定一些參數後在--PREVIEW中可以看到代碼,把它復制到INI文件中就行了。
3.編程經驗--PB資料庫連接
作者:郭洪建 無法確定網上來源,如有準確首發,請與本站聯系
通過這些年的信息系統開發經驗,使我對POWERBUILDER的理解更進一步,最近在開發某子系統模塊時,遇到了一個奇怪的問題,這里給大家介紹一下.
通常在使用PB和資料庫管理系統(DBMS)連接時,使用兩種方式:
一、開放數據源介面(ODBC)連接
ODBC是通過支持美國微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中的一部分.在PB 中通過配置 SQLCA.DBMS=『ODBC』對象的屬性可使應用程序通過ODBC連接到資料庫。
ODBC的具體配置包含了數據源、驅動程序類型、緩沖池等各種細節參數。
例子:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm="C,C"
PWD="',C"
二、專用資料庫介面
每個資料庫管理系統(DBMS)均提供相應的客戶端驅動,為了更好的服務於資料庫。
在這里我們使用的是Microsoft sqlserver 2000 的客戶端程序。通過設置 SQLCA.DBMS ="MSS Microsoft SQL Server" 使客戶端通過專用資料庫介面連接到資料庫。
該類介面的參數配置除了伺服器名、資料庫名、LogId、LogPass外還包含了連接協議等用戶驗證方式等,可通過伺服器端或客戶端的配置程序進行配置。
SQLCA.dbms= "MSS Microsoft SQL Server" //介面類型
SQLCA.database= "master" //資料庫
SQLCA.userid= ""
SQLCA.dbpass= ""
SQLCA.logid= "sa"
SQLCA.logpass= "xxxx"
SQLCA.serverName= ".\xxx"//伺服器名
SQLCA.dbparm= "Commit"
SQLCA.autocommit= false
以上介紹的是PB與資料庫連接時常用的方法。
往往根據不同的應用環境選擇連接方式, 在單機環境下多採用的是ODBC連接,因為在發行環節上相對要容易些。在網路環境下多採用專用資料庫連接,這樣可以提高系統的可靠性與執行效率。專用資料庫的發行環節往往要配上相應DBMS客戶端的動態連接庫(DLL),並把它.
PB與ASA資料庫連接問題!
一.連接步驟
1.添加數據源。WINDOWS98中----我的電腦---控制面版----ODBC數據源32位-----系統DSN---添加---選擇你使用的資料庫
2.在工具條上點擊DB PROFILE 選擇已建立好的資料庫連接,單擊EDIT在彈出的對話框中選PREVIEW裡面就是連接資料庫的語句,COPY就OK了。
二.DB_profile寫法(以lin.com的tax常式為例)
http://down.laozang.com/lin/code/tax.zip
tax.ini
[Database]
DBMS=ODBC
Database=test
DbParm=c
三.打包所需文件
參看以下文章:
http://www.laozang.com/pbbbs/htm_data/12/0505/233.html
四.容易出現的問題及解決方法
導致ASA資料庫無法連接的問題有以下幾種:
1、ODBC配置錯誤。沒有配置數據源,資料庫的用戶名或口令錯誤等都會導致資料庫無法連接。
解決的辦法:檢查數據源的配置,如果沒有在ODBC中配置數據源則按照向導添加數據源即可;口令錯誤只需改為正確的即可。
2、連接時提示LOG文件錯誤。這樣的問題大多出現在重裝系統後、源碼移植到其他系統、資料庫文件路徑改變之後。
解決的辦法:在創建ASA資料庫的時候不創建LOG文件,如果已經創建了LOG文件則可以利用PB自帶的工具Sybase central來去掉LOG文件和資料庫文件的關聯。操作步驟如下:
a)啟動Sybase central在左邊的樹型目錄中選擇Utilities;
b)雙擊右邊出現的條目中的change log file settings,直接next;
c)點Browse選擇需要去除log文件的資料庫文件,選好後next;
d)這里你會看到一些資料庫的信息,log文件名,文件大小等。next;
e)去掉Maintin the following transaction log file前面的對勾,Finish;
f)配置ODBC連接資料庫就可以了。
3、資料庫文件損壞。此類錯誤一般不常見,可能由於病毒破壞或誤操作引起。
解決的辦法:如果以前有備份用備份文件覆蓋原文件即可,如果沒有備份文件就只能重新建庫了!
PB8如何使用OLE DB練到ASA資料庫
(本文來自sybase網站 翻譯 by 金色年華)
原文出處:
http://www.sybase.com.cn/cn/content/support/exp_jszc_pb_dbms_00017.htm
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資料庫的步驟如下:
在命令提示符下鍵入如下命令,啟動 ASADEMO:
dbsrv7 asademo -x tcpip -n asademo
("asademo" - 你選擇運行的資料庫. 確定你沒有正在運行一個同名的資料庫,否則會出錯)
有兩個方法通過 OLE DB 連接到 ASA Server:
1) OLE DB/ODBC bridge
對於這種連接,你必須在資料庫參數中,指定有效的 ODBC 數據源,連接的腳本如下:
// 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)
你可以通過一個擴展名為.udl的單獨的文件,提供連接信息,在OLE DB中訪問數據.這個文件與 Microsoft DataLink (.udl) file 類似. 你必須在系統中安裝 Datalink API 以便於創建和使用 .udl 文件.
創建 .udl文件的方法:
在當前目錄里的空白處單擊滑鼠右鍵,選擇新建文件,選擇 Microsoft Data Link.如果沒有創建 Microsoft Data Link 的選項,需要創建一個文本文件,然後更改擴展名為 .udl.雙擊這個文件,添加連接信息.詳情請訪問msdn.microsoft.com 搜索 Data Link(此處原文有亂碼,具體內容不詳).
【討論】pb連接MS SQL Server問題!
一.連接步驟
1)伺服器安裝SQL Server並啟動,創建資料庫。
2)客戶機安裝SQL Server客戶端。
3)啟動PB,配置數據源描述(通過直連介面,不建議用ODBC)。
4)連接。
二.DB_profile的寫法
在ini文件里設置
[Database]
DBMS=MSS Microsoft SQL Server 6.x
Database=databasename
UserId=
LogID=
DatabasePassword=
LogPass=
ServerName=
AutoCommit=False
在程序里用profilestring讀取
附加資料:ms sql server 配置文件設置
ms sql server 配置文件設置:
dbms="mss"//只須在*.ini文件中用這個代碼便告訴pb使用的ms sql server
Database:所用資料庫
LogId:sql server的登陸賬號
LogPass=口令
servername:允許資料庫伺服器連接的計算機名
autocommit:控制pb 是工作在事務處理范圍內還是工作在事務處理范圍外
dbparm:dbms的專用連接參數
以下參數:
language:在顯示錯誤消息和日期格式時指定要使用的語言,在伺服器上必須設置該直.
lock:事務處理隔離層
log:文本和圖像數據的更新是否應該紀錄到事務日誌中.
systemprocs:系統存儲過程和用戶定義的存儲過程是否顯示在各種各樣的pb畫板中.
pbcatalogowner:pb存儲中表的預設者.
async:允許在伺服器上進行同步操作.0:同步,1:非同步
dbgettime:當async=1時,使用該參數設置用戶在檢索行時pb等待來自pb的響應的秒數.
cursorlock:release和cursorscroll參數一起使用可設置游標的鎖定選項.lock,opt,optval,readonly
cursorscroll:設置游標的滾動選項.
staticbind:控制pb是否在檢索數據前獲取dbms中的結果集描述.
dbtextlimit:控制返回的文本欄位的最大長度而不用將文本作為二進制大型數據對象來處理.
appname:設置連接時所使用的應用程序名.
host:設置連接似的工作站名.
packetsize:設置使伺服器向pb傳送數據時所設置的包大小.
secure:設置是否想使用winnt集成邏輯安全性和安全sql server連接 預設0使用標准安全性,1集成安全性.
PowerBuilder與Oracle的連接
PowerBuilder(PB)和Oracle分別是前端開發工具和RDBMS的主流產品。PB提供了兩種與Oracle連接的介面:PowerSoft內置的資料庫介面(Native Database Interface)和ODBC介面。本文介紹使用PB6.0內置Oracle介面的方法,包括數據描述文件的設置、存儲過程的調用和存儲過程作為數據窗口數據源的操作方法等內容,使用的RDBMS的Oracle 7.3。
PowerBuilder與Oracle的連接
假定已安裝Oracle客戶端應用程序。可用Sqlplus或Tnsping等是否能連接到Oracle資料庫,確定在SQLNET配置文件中使用的資料庫別名(Database Alias,又稱伺服器名,Server Name)。如有疑問,可在Oracle客戶端程序目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括SQLNET應用程序的安裝目錄(如C:\ORAWIN95\BIN)。
進入PB的Database Profiles畫筆,可看到所有已安裝的資料庫介面(PB6.0預設安裝的是Oracle 7.3版的介面,如使用低版本的Oracle,需在安裝時指定),選擇「O73 Oracle 7.3」,點擊「New」按鈕,進入Database Profile Setup對話框。在「Connection」頁輸入下列信息:
Profile Name:為該Database Profile起一個有意義的名稱;
Server:TNS:ServerName,其中ServerName為上述資料庫別名(伺服器名),如@TNS:ORA73;
Login ID:Oracle資料庫中實際的用戶名,由於PB初次連接到資料庫時要自動建立五個系統表(PowerBuilder Catalog Table;SCATTBL,PBCATCOL,PBCATEDT,PBCATFMT,PBCATVLD,存儲表的擴展屬性),因此第一個連接到Oracle的用戶必須具有建表、給PUBLIC角色授權等許可權。例如可用SYSTEM用戶進行第一次連接,此後的連接對用戶則無特殊要求;
Password:該用戶的口令。
設置上述內容後,即可連上Oracle。為優化資料庫連接,還可設置下列選項:
Prompt for Database Information:連接時是否提示用戶輸入用戶名和口令;
Generate Trace:啟動DB跟蹤工具,跟蹤連接;
Thread Safe:開發需要多線程環境支持的分布式應用時,選擇該項。預設為未選,適用於非分布應用;
PBDBMS:與存儲過程調用方式有關的參數。Oracle為7.2或更高版本時,清除該選項,此時帶IN OUT參數的存儲過程可作為數據窗口數據源。7.2版本以下,選擇該項,調用PBDBMS.Put-Line建立存儲過程的SQL語句,預設是選中;
Commit on Disconnect:斷開連接時,指定提交或回退未提交的事務;
Case Sensitive:連接的Oracle伺服器是否區分大小寫。注意該項選中時,所有主鍵、包含主鍵的表名、外鍵須全為大寫字元。
PowerBuilder Catalog Tables Owner:指定擁有PB系統表的用戶,預設為「SYSTEM」。如果要使用多種顯示格式或有效性規則,可以在不同的用戶下建立幾套系統表;
Table Criteria:指定滿足哪些條件的表、視圖和同義詞可在「Select Tables」對話框中顯示出來。例如DEV用戶下銷售子系統的表都以SALE開頭,則可以用SALE%、DEV、「TABLE」、「VIEW」指定只顯示DEV用戶以SALE開頭的表和視圖;
Asynchronous:選擇該項,可在一個復雜的SQL語句執行過程中,返回第一行結果前,切換到其他操作;
Number of Seconds to Wait:若上一項選中,還可進一步通過該項指定檢索數據時,等待資料庫響應的時間;
Retrieve Blocking Factor:決定數據窗口對象一次可從資料庫取出的記錄數;
Number of SQL Staments Cached:PB可將數據窗口對象產生的SQL語句和嵌入式SQL語句保存在SQL語句緩沖區,該參數指定緩沖區為PB保留的SQL語句數目。該數值可由下式計算:SQLCache=伺服器OPEN—CURSORS數-5(保留的游標數)-本連接預期使用的最大游標數;
Disable Bind:指定是否將輸入變數與SQL語句綁定,此參數影響PB為數據窗口對象生成INSERT語句的方式;
Static Bind:數據窗口對象檢索數據前是否檢測SELECT語句的合法性;
在Syntax頁,還可指定日期、時間的格式等。在Preview頁可查看Database Profile設置對應的PowerScript寫法。
Oracle存儲過程的使用
歸納起來PB6.0中調用Oracle存儲過程有以下四種方法。
方法一:以關鍵字RPCFUNC聲明存儲過程;
方法二:以DECLARE PROCEDURE語句聲明存儲過程;
方法三:以動態SQL語句實現;
方法四:調用函數PBDBMS.Put-Line。
一般情況下,方法一能得到較好的運行效率和更完善的功能。因此推薦使用方法一。但是某些類型的存儲過程只能使用其他方法。以下重點介紹方法一和方法二。
兩種方法比較起來,有以下幾點主要區別:
1)方法一適用於具有IN、OUT和IN OUT參數的存儲過程,而方法二僅支持IN
PB10連接SQL Server的配置
可能初次使用pb10的朋友無法順利連接到sql server,一方面沒有了mssql server專用介面了,另一方面資料庫管理系統(DBMS)換成了「OLE DB」,配置起來有點不順手!下面就來介紹pb10中用OLE DB連接sql 2000資料庫。
在安裝pb10的時候選擇custom/full方式安裝(默認的安裝方式不會安裝ole db介面),next-》如果你沒有安裝.net則不要選擇列表中的ADO.net....項。一路next完成安裝。
在資料庫畫板中找到OLE microsoft OLE DB項,在其上右鍵新建一個配置,在彈出的配置窗口中:
profile name:填寫配置文件名 //任意即可
provider:選擇資料庫管理系統類型,這里選擇「SQLOLEDB」項
data source:伺服器名(和之前的版本不太一樣)。可以在下拉列表中選擇,也可以填入伺服器名或IP地址如:127.0.0.1等。如果上面的provider不是「SQLOLEDB」則此下拉列表中可能沒有選項。
user ID:用戶名。我的用戶名是默認的sa
password:對應上面user ID的密碼,我的密碼是空的,所以不填。
到這里你就可以順利的連接到sql server了。但是連接到哪個資料庫呢?上面的參數都沒有指明,我也找了半天。不要著急,在Extended里填入 「database=資料庫名」 就可以了。(不要引號)
最後的配置文件內容為:
// Profile his
SQLCA.DBMS = "OLE DB"
SQLCA.LogId = "sa" //我的用戶名是sa
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='NETMANAGER',PROVIDERSTRING='database=zs'" //我的資料庫名是:zs;datasource後面也可以是IP地址:DATASOURCE='127.0.0.1'
至此就完成了pb10下用OLE DB連接sql server的配置!
在PB中使用FoxPro資料庫的方法
重慶工業管理學院 蔣波
---- Power Builder 是十分優秀的用於客戶/伺服器環境信息管理系統開發工具,其優秀之處不僅是因為可以開發基於客戶/伺服器模式的系統,而且簡單、易學,Power Builder 自身是沒有資料庫管理系統(DBMS)的,它是首先通過不同的驅動程序聯接不同的資料庫,再通過這種聯接,實現對數據的管理。Power Builder同時隨盤附帶有一個小型的資料庫管理系統:SQL Anywhere,所以用戶也可以直接開發用於單機的完整的信息管理系統。
---- 本人以前曾開發過基於FoxPro環境下的資料庫系統,但FoxPro的編程太麻煩,不但要處理數據的管理,而且還要花大量的精力處理輸入、輸出的格式等。但有著可視化編程環境的Power Builder卻不同,處理輸入、輸出是件相當簡單的事情,於是,本人償試用Power Builder來管理以前的資料庫。 c在Power Builder系統中,使用FoxPro的資料庫有兩種方法:一是利用ODBC聯接FoxPro資料庫;另一種方法是將FoxPro的資料庫轉換到SQL Anywhere的數據格式。
---- 一、 利用ODBC聯接FoxPro資料庫
---- 在Power Builder中,直接訪問FoxPro資料庫只能通過ODBC方式。
---- 在開發環境下,可以直接在PowerBar畫板上配置ODBC,聯接FoxPro資料庫,方法如下:
單擊Configure ODBC工具鈕
在Installed Drivers目錄框中選擇:Microsoft Foxpro Driver (*.dbf)
單擊「Create」按鈕
命名數據源名、選擇版本
取消「使用當前工作目錄」選項
單擊選定目錄,選擇被聯接資料庫所在的目錄
確定退出
---- 通過ODBC方式聯接的FoxPro的資料庫,一定要滿足FoxPro的資料庫格式,即資料庫文件結構必須是:「32位元組文件描述若干個32位元組的欄位描述 結構描述結束符(0D) 記錄1,記錄2,…… 文件結束符(1A)」。由此看來,傳統的DBF資料庫文件均可通過該方式聯接。對於Visual FoxPro環境下建立的表(Table),其結構與傳統的資料庫結構是不同的,它在欄位描述結束符(0D)與記錄之間加上了二百多個位元組的內容,但在未納入VFP的資料庫(Dbc)之前,其內容為「00」,此時仍可以通過這種方式聯接,一旦納入資料庫中,該段位元組已被填上了其它內容,無法再聯接。
---- 在Power Builder應用程序中,使用事務處理對象來聯接資料庫,這種事務處理對象,即有默認的SQLCA,用戶也可以自己生成,以方便訪問多個資料庫。在程序中使用事務處理對象時,一般必須先指明DBMS、DbParm兩個屬性,對於FoxPro資料庫,還必須指明 Database、 userid、servername、幾個屬性,這一點是與訪問其他類型的資料庫不同的地方。
sqlca.dbms="ODBC" // 指定聯接方式ODBC
sqlca.database="D:\prg\pubdata" // 指定被聯接資料庫所在目錄
sqlca.userid="public" // 用戶識別號,都為 public
sqlca.servername="FOXPRO" // 伺服器名:均為FOXPRO
sqlca.dbparm="C" //數據源名
connect using sqlca; // 實施聯接
……
---- 通過對FoxPro資料庫的聯接,用戶便可以在Power Builder開發環境下、應用程序中使用這些資料庫,快速地開發出自己的信息管理系統,實現對這些資料庫的維護與管理。
---- 二、 將DBF文件轉換為SQL Anywhere 的DB文件格式
---- 在Power Builder環境下,附帶有一個資料庫系統——SQL Anywhere,在Power Builder中利用它,用戶可以直接建立、維護資料庫。在SQL Anywhere中,資料庫結構雖然與VFP不同,但概念是一致的,即:資料庫是系統中相關的各種數據,這些數據又因不同用途組織成不同的表,這些表共同構成資料庫,與傳統的資料庫(DBF)相類比,PB、VFP中的表即是傳統意義的資料庫,PB、VFP中的資料庫類似於傳統的資料庫(DBF)文件所在的目錄。SQL Anywhere中提供了將傳統的DBF文件轉換為該系統下的資料庫文件(DB)中的表的工具。為了實現這一轉換,用戶必須先建立一個新的表,再將DBF格式的文件內容導入該表中。
---- 對於DBF文件,必須是傳統意義上的資料庫,如FoxPro、dBase、FoxBASE環境下的資料庫文件。該種資料庫文件嚴格遵循「數據文件==資料庫結構+資料庫記錄」這一格式。其結構如下:「32位元組文件描述若干個32位元組的欄位描述 結構描述結束符(0D) 記錄1,記錄2,…… 文件結束符(1A)」
03 62 0A 07 02 00 00 00 - 81 00 4C
00 00 00 00 00 // 文件描述:時間、長
00 00 00 00 00 00 00 00 - 00 00 00
00 00 00 00 00 度、記錄長、記錄數
4E 41 4D 45 00 00 00 00 - 00 00 00
43 01 00 00 00 // 第一個欄位:名、類
28 00 00 00 00 00 00 00 - 00 00 00<
『玖』 PB源代碼如何運行
PB源代碼運行方法:
有沒有pbw文件,如果有,直接雙擊它就可以打開(當然前提是裝了pb)。
如果沒有,就需要建立一個,以pb9為例:先建工作區,file-new-workspace頁-workspace,然後附加應用,file-new-target頁-existing Application,然後選中pbl里的應用程序對象,保存即可。