當前位置:首頁 » 操作系統 » pb開發資料庫

pb開發資料庫

發布時間: 2022-05-03 22:51:49

A. 近來資料庫開發工具哪些比較流行,powerbuilder咋樣

做資料庫開發,首選pb,不要因為用的人少就覺得它不好,pb的問題主要是不開源,和好不好用是兩碼事,現在很多專業做數據管理的公司都還是在用PB做為主要開發工具,像鐵路、銀行、超市、醫院這些領域內,PB有不可取代的地位。
再次的,應該就是delphi了,優缺點就不用詳細說了,網上有大堆的介紹。
其實資料庫開發的范圍太廣了,關鍵還是要看你要做的是哪方面的應用,三層的?兩層的?區域網的還是基於互聯網的,你的應用針對的客戶群是哪些,用戶基礎怎麼樣,對應用的響應有多高的要求,這些因素都能影響你對開發工具的選擇,JAVA、C#是流行,但並不一定是最好的。

B. pb開發程序怎麼跟資料庫連,代碼詳細點

setpointer(hourglass!) sqlca.dbms=profilestring("hszx.ini","database","dbms","") sqlca.database=profilestring("hszx.ini","database","database","") sqlca.logid=profilestring("hszx.ini","database","logid","") sqlca.logpass=profilestring("hszx.ini","database","logpass","") sqlca.servername=profilestring("hszx.ini","database","servername","") sqlca.dbpass=profilestring("hszx.ini","database","dbpass","") sqlca.userid=profilestring("hszx.ini","database","userid","") sqlca.lock=profilestring("hszx.ini","database","lock","") sqlca.dbparm=profilestring("hszx.ini","database","dbparm","") sqlca.autocommit=true connect using sqlca; setpointer(arrow!) if sqlca.sqlcode<0 then messagebox("操作失敗","資料庫連接錯誤!") halt end if 初始文件hszx。ini是配置文件,可以在開發目錄夏建一個 [Database] DBMS=O84 ORACLE 8.0.4 Database= UserId= DatabasePassword= LogPass=密碼 ServerName=伺服器名 LogId=登錄名 Lock= DbParm= Prompt=0 AutoCommit=0 其他的資料庫也雷同

C. 如何將PB開發的資料庫管理系統轉移到其他機器上

最好別導出,會影響數據結構的。有兩種辦法可以把資料庫移植到其他伺服器上。
第一種:停當前機器上的SQL服務,這樣就能把需要移植的資料庫復制出來,然後拷貝到新的伺服器上,然後附加。註:這種辦法好處是有備份,如果移植過去發現有錯誤可以重新來復制;不過如果該伺服器上的SQL服務不能被停止該方法則行不通。
第二種:分離資料庫。在要分離的資料庫上點右鍵,然後選擇「所有任務」,然後選擇「分離資料庫」,復制該資料庫到新伺服器上,然後附加。註:最好是復制過去,不要剪切,確定新伺服器上的資料庫沒問題了再刪除原資料庫。

D. 用PB開發的一個資料庫伺服器多個異地客戶端使用查詢更新速度慢問題解決的技術方法

處理的方法很簡單:
1、並不是所有的地方都需要使用read commit的加鎖級別,你從application中設置一句sqlca.lock="RU", 使用臟讀,這樣就可以去掉大多數不必要的SELECT行鎖。然後在一定要讀最新數據的地方,把SQLCA。LOCK改為RC,用完後再改回來。
這樣就避免了幾乎80%的阻塞。
2、對於由於行更新,或者其他UPDATE導致的鎖,一般資料庫會自己協調,在事務比較長的情況下,這需要你對原來的程序做適當的修改。把長事務變為幾個小的事務,在事務中做更新操作,不要插入用戶的交互。這是系統的設計原則。
如果你的系統對事務的要求不嚴格,又不想改動原來的程序,辦法更簡單,在前面
SQLCA。LOCK的基礎上,加句SQLCA。AUTOCOMMIT=TRUE,這樣每數據修改自動提交,就可以避免大多數由於更新產生的死鎖和阻塞。
3、最後要對付的是剛才說的被大量應用頻繁訪問的表(HOT TABLE),如果你的系統允許使用RU加鎖級別,那麼不用太考慮,因為SELECT已經不會導致鎖定了。
但是如果你不能使用RU方式(1里頭提到的辦法),
那麼要採用這樣的手段:
使用索引把更新鎖,SELECT鎖來分開,同時也避免SQLSERVER傻傻為了性能的原因把行鎖升級為表鎖。
具體辦法是建立一個索引,如果可以的話使用聚集索引,因為聚集索引採用的是類似HASH的檢索方式,這樣當查找索引的時候,就不需要訪問數據表了。
另一種辦法,是將你SELECT語句中要檢索的數據都加到索引中,例如你檢索NAME,SEX,AGE,如果你把三個數據都加入了索引,這就意味著SELECT語句只要找到索引,就已經找到了最後要選取的數據(從索引中),這樣自然不會去LOCK表了。這樣做的時候要針對你的程序仔細選擇索引,否則把索引變成了表的一個備份就沒有意義了。

E. 為什麼資料庫開發公司都選用DelPHI,而不用PB

我的看法是,PB雖然dw很不錯,但現在db控制項日益豐富了,不一定要用他了,關鍵是pb比較過時了,更新和技術支持都不足,最大的缺陷是設計出的UI陳舊,跟不上發展的要求了,而delphi支持快速開發,和windows集成比較好,是目前除了vs外的首選,所以更受歡迎吧。

F. pb基本開發步驟怎麼走

其實最簡單的就是在windows上安裝pb
1、找程序:找一個pb安裝程序,最新版的是pb11.2
2、安裝程序:安裝pb,其中會默認安裝anywhere sql,如果你使用sybase的資料庫,在開發的時候,這個很有用,可以當做一個小型的資料庫管理軟體
3、配置資料庫:安裝好後,你要做的是按你的要求建一個資料庫,剛才說了,如果用sybase資料庫,就可以用anywhere sql開發,裡面有一個sybase central管理中心,可以用來配置的
4、連接資料庫:最簡單的就是使用odbc,在控制面版中的'數據源'進行
5、pb連接資料庫:你可以看一下相關例子,其實就是設置sqlca的參數,並connect就行了

G. pb中創建資料庫窗口的步驟

當我們把用PowerBuilder(以下簡稱PB)開發的資料庫客戶端應用程序交給用戶後,還需要在用戶的伺服器端的資料庫系統上進行一系列配置工作,如建立業務資料庫和建表、視圖、主鍵、索引等數據對象。只有正確配置了資料庫伺服器上的數據結構,應用程序才能正常運行。通常由經驗豐富的資料庫管理員,使用資料庫系統提供的工具,手工或通過其他輔助工具,來完成資料庫端的配置工作。本文以微軟的SQL Server 2000為例,介紹用PB開發一個生成業務資料庫及各種業務數據對象的程序,用戶只要運行這個程序,就可以建立資料庫端的數據結構。
程序功能及結構
程序的主要功能是建立客戶應用程序運行時需要的業務資料庫和在新建立的業務資料庫上建立數據對象。
程序的輸入信息通過4個單行編輯文本框獲得:
●sle_database:新建立的資料庫名稱;
●sle_datafile:新建資料庫所用的數據文件;
●sle_logfile:新建資料庫所用的日誌文件;
●sle_script:建立資料庫中的數據對象所用的腳本文件。
完成程序功能的兩個按鈕分別為:cb_create 用於建立資料庫;cb_table用於在新建的資料庫中建立表、主鍵等數據對象。
在兩個輸出窗口中輸出結果:dw_database 用於顯示新建的資料庫名稱及數據文件;dw_objects用於顯示通過cb_table按鈕建立的數據對象。
具體實現
考慮到對於一個特定的應用,在系統分析階段就已經確定資料庫所需要的數據空間、日誌空間的大小等一些系統物理信息,不會等到程序運行時由用戶確定,所以這些信息不需要用戶輸入。資料庫的名稱一般來說也是固定的,用戶輸入的資料庫名稱(sle_database),可用來檢查資料庫系統中是否已經有同名的資料庫。數據文件和邏輯文件的物理位置和名稱,由用戶根據伺服器上的磁碟空間空閑情況輸入(sle_datafile、sle_logfile),程序中給出了初始值,指定的文件位置是SQL Server通常的數據文件存放位置。
1.建立數據對象的腳本文件(sle_script)
該文件是普通的文本文件類型,其內容由建立表、主鍵等數據對象的數據定義語言(DDL)組成,其語法符合資料庫系統的規則。例如,腳本test.sql內容為建立兩個帶有主鍵的表:
create table xz_tj_all
( gxjg char(4) not null,
nian smallint not null,
yue tinyint not null,
bz1 tinyint not null,
bz2 tinyint not null,
a1 integer ,
a2 integer ,
a3 integer ,
primary key (gxjg, nian, yue, bz1, bz2)
)
create table xz_tj_4_1
( gxjg char(4) not null,
nian smallint not null,
yue tinyint not null,
bz1 tinyint not null,
bz2 tinyint not null,
a1 integer ,
primary key (gxjg, nian, yue, bz1, bz2)
)
2.窗口的Open事件
應用程序只用到一個窗口(w_create_database),在其Open事件中,對兩個全局事務對象進行創建,並利用其中的一個事務對象(tr_sql)與系統資料庫(Master)進行連接。此時還沒有進行業務資料庫的創建工作,業務資料庫不存在,所以不能在這里進行與新建業務資料庫的連接。w_create_database 的Open事件腳本如下:
//創建與Master系統資料庫相連接的事務對象
tr_sql = create transaction
tr_sql.DBMS =「MSS Microsoft SQL Server 6.x」
tr_sql.DataBase = 「Master」
//資料庫系統管理員
tr_sql.LogPass = 「sa」
//伺服器名
tr_sql.ServerName = 「station4」
//系統管理員口令
tr_sql.LogId = 「sa」
tr_sql.AutoCommit = False
tr_sql.DBParm = 「」
//連接到Master系統資料庫
connect using tr_sql;
if tr_sql.sqlcode <> 0 then
MessageBox (「資料庫連接錯誤」,「不能連接到SQL Server資料庫Master。請確認SQL Server資料庫是否啟動。~n~r」 + 「錯誤信息:」 + tr_sql.sqlerrtext)
return
end if
//從系統表sysdatabases中檢索資料庫信息
dw_database.SetTransObject(tr_sql);
//創建與新建業務資料庫相連接的事務對象
tr_newBase = create transaction
tr_newBase.DBMS =「MSS Microsoft SQL Server 6.x」
tr_newBase.LogPass =「sa」
tr_newBase.ServerName =「station4」
tr_newBase.LogId =「sa」
tr_newBase.AutoCommit = False
tr_newBase.DBParm =「」
3.cb_create按鈕的單擊事件
根據業務需要,這里創建的數據文件和日誌文件的初始大小為100MB,最大值為200MB,增量為20MB。按鈕cb_create根據輸入參數構造動態SQL語句,創建資料庫。cb_create的clicked事件腳本如下:
//資料庫名
string ls_database
//數據文件路徑及文件名
string ls_dataFile
//日誌文件路徑及文件名
string ls_logFile
//創建資料庫的SQL語句
string ls_mySql
//邏輯數據文件名
string ls_logicalFileName
//邏輯日誌文件名
string ls_logicalLogName
SetPointer(Hourglass!)
//取得用戶輸入的資料庫名稱
ls_database = trim(sle_database.text)
//取得數據文件位置和名稱
ls_dataFile = trim(sle_dataFile.text)
//取得日誌文件位置和名稱
ls_logFile = trim(sle_logFile.text)
ls_logicalFileName = ls_database + 「Arch1」
ls_logicalLogName = ls_database + 「Archlog1」
tr_sql.AutoCommit = True
//建立資料庫的語句
ls_mySql=「CREATE DATABASE 」+ls_database+「ON」&
+「( NAME =」+ls_logicalFileName+「,」&
+「FILENAME = 『」+ls_dataFile+「',」&
+「SIZE = 100MB,」&
+「MAXSIZE = 200,」&
+「FILEGROWTH = 20)」&
+「LOG ON 」&
+「( NAME = 」+ls_logicalLogName+「,」&
+「FILENAME = 『」+ls_logFile+「',」&
+「SIZE = 100MB,」&
+「MAXSIZE = 200,」&
+「FILEGROWTH = 20)」
EXECUTE IMMEDIATE :ls_mySql Using tr_sql;
tr_sql.AutoCommit = False
//檢索出剛剛建立的資料庫
dw_database.Retrieve(ls_database)
cb_table.Enabled = True
SetPointer(Arrow!)
4.cb_table按鈕的單擊事件
按鈕cb_table從指定的腳本文件(sle_script.text)中讀取內容,構造動態的SQL語句,創建數據對象。為簡化程序,對於腳本文件大於32765位元組的情況,本文沒做處理,讀者可用多次讀文件等技術自行處理。
cb_table的clicked事件腳本如下:
//創建數據對象前的時間
datetime ldt_create
//資料庫名
string ls_database
//創建數據對象的SQL語句
string ls_sql
//存儲腳本文件名
string ls_fileName
//打開文件的文件號
int li_fileNo
//文件長度,讀取的文件位元組數
long ll_fileLength, ll_number
//取得新建的資料庫名稱
ls_database = trim(sle_database.text)
if MessageBox(「請確認」,「將要在」+ls_database+「資料庫中生成表結構?」, Question!,YesNO!,2) = 2 then
return
end if
SetPointer(HourGlass!)
//為連接業務資料庫的事務對象設置資料庫值
tr_newBase.DataBase = ls_database
connect using tr_newBase;
if tr_newBase.sqlcode <> 0 then
MessageBox (「資料庫連接錯誤」,「不能連接到SQL Server資料庫:」 +ls_database + 「 。~n~r」+「錯誤信息:」+ tr_newBase.sqlerrtext)
return
end if
//取得建立數據對象的時間,並從系統表sysobjects中提取建立的數據對象
Select distinct getDate()
into :ldt_create
from sysobjects
using tr_newBase;
//此數據窗口將顯示新建事務對象
dw_objects.SetTransObject(tr_newBase)
//從輸入中取得腳本文件名
ls_fileName = trim(sle_script.text)
ll_fileLength = FileLength(ls_fileName)
//對大於32765位元組的文件不做處理
if ll_fileLength > 32765 then
MessageBox(「」,「腳本文件太大」)
DISCONNECT USING tr_newBase;
return
elseif ll_fileLength > 0 then
//讀取文件內容,執行動態SQL語句
li_fileNo = FileOpen(ls_fileName, StreamMode!)
ll_number = FileRead(li_fileNo, ls_sql)
if ll_number > 0 and ll_number <= 32765 then
tr_newBase.AutoCommit = True
EXECUTE IMMEDIATE :ls_sql
Usingtr_newBase;
tr_newBase.AutoCommit = False
end if
FileClose(li_fileNO)
else //不能正確讀取文件信息
sle_script.setFocus()
sle_script.SelectText(1,len(sle_script.text))
MessageBox(「打開腳本文件出錯」,「請輸入正確的表結構腳本文件名稱」)
DISCONNECT USING tr_newBase;
return
end if
//檢索剛剛建立的數據對象
dw_objects.Retrieve(ldt_create)
DISCONNECT USING tr_newBase;
SetPointer(Arrow!)

H. pb開發工具怎樣定義資料庫窗口中的key事件

資料庫窗口默認沒有KEY事件,需要添加用戶自定義事件:pbm_dwnkey,如圖

熱點內容
數據結構對演算法的影響 發布:2024-10-06 18:21:28 瀏覽:32
伺服器託管ip不變 發布:2024-10-06 18:21:20 瀏覽:421
網盤加密軟體 發布:2024-10-06 18:16:17 瀏覽:123
兒童配置保險怎麼買 發布:2024-10-06 18:07:32 瀏覽:733
ipad存儲器 發布:2024-10-06 18:00:07 瀏覽:534
c語言void返回值 發布:2024-10-06 18:00:02 瀏覽:319
bat執行shell腳本 發布:2024-10-06 17:59:24 瀏覽:330
sql單引號雙引號 發布:2024-10-06 17:41:51 瀏覽:572
macbookpro選哪個配置 發布:2024-10-06 16:50:01 瀏覽:141
linux基礎命令 發布:2024-10-06 16:37:59 瀏覽:411