七月网

powerbuilder 12(powerbuilder 12.6 稳定)

七月网4950

一、powerbuilder如何连接sql数据库,需要具体的操作过程

1、在powerbuilder软件界面,点击上面数据库图标。

powerbuilder 12(powerbuilder 12.6 稳定)

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标签,复制下方的一段代码,留待后面使用。点击OK,关闭此窗口。

12、点击新添加的那一项,如图,点击右侧Connect按钮,然后数据库小图标会出现一个绿色小勾。到这里,连接数据库的所有配置已经完成,只需在程序中添加连接数据库的代码就可以了。

13、如图,在一个程序窗口的open事件中添加了刚刚复制的那段代码,这样这个窗口在打开时就可以直接连上数据库了。

二、powerbuilder中使用excel使用的属性方法

没教程的,我教你一个方法:你打开EXCEL,"工具—>宏—>录制新宏"然后在EXCEL表格里随便输入几个东西,然后停止录制,然后"工具—>宏—>运行宏—>编辑",这时候打开了一个VB编辑器,里面有以下代码:

'宏由 Jenkit录制,时间: 2009-8-29

对于上面的执行代码,全部都可以在PB里调用,不懂的地方你就用宏跟踪。具体我贴一个代码(导出到EXCEL)给你参考:

string ls_colname,ls_coltext,ls_coltype

long ll_columncount,ll_rowcount

long ll_col,ll_row,ll_validcol= 1

string ls_filepath,ls_filename

datastore lds_tmp//临时存储,用于放所有数据

datastore lds_buff//用于缓冲数据的存储区

WNetGetUser(lsname,username,strlen)

ls_filepath="C:\Documents and Settings\"+username+"\桌面\"+string(gd_sysdate,'yyyymmdd')

li_ret= getfilesavename('选择报盘文件',ls_filepath,ls_filename,'XLS','EXCEL文件(*.XLS),*.XLS')

if li_ret<> 1 then return-1

IF fc_isnull(ls_filepath,'')='' THEN return-1

li_ok= ExcelServer.ConnectToObject("","excel.application")

li_ok= ExcelServer.ConnectToNewObject("excel.application")

messagebox("提示","您的电脑可能没装EXCEL,所以不能导出!")

If FileExists(ls_filepath) Then

IF MessageBox("提示","文件"+ ls_filepath+"已经存在,是否继续?",Question!,YesNo!)=2 Then

//检查给定的文件路径是否可以写入

ll_row=FileOpen(ls_filepath,StreamMode!,Write!,LockWrite!,Replace!)

IF ll_row=-1 OR IsNull(ll_row) THEN

MessageBox("提示","指定的文件路径不能写入数据,请检查!",StopSign!)

openwithparm(w_wait,'正在缓冲...')

auo_dw.getfullstate(lb_fullstate)

lds_tmp.setfullstate(lb_fullstate)

lds_buff.setfullstate(lb_fullstate)

openwithparm(w_wait,'正在打开EXCEL文件...')

ExcelServer.Application.Workbooks.add()

ExcelServer.Application.Visible= false

ExcelServer.ActiveSheet.Cells.Select()

//ExcelServer.Selection.ColumnWidth= 16//刚好容纳身份证宽度

ExcelServer.Selection.Font.Name="宋体"

ExcelServer.Selection.Font.size= 10

ExcelServer.Selection.Font.Strikethrough= False

ExcelServer.Selection.Font.Superscript= False

ExcelServer.Selection.Font.Subscript= False

ExcelServer.Selection.Font.OutlineFont= False

ExcelServer.Selection.Font.Shadow= False

ExcelServer.Selection.Font.Underline=-4142

ll_columncount= long(lds_tmp.Object.DataWindow.Column.Count)

ll_rowcount= lds_tmp.rowcount()

openwithparm(w_wait,'格式化EXCEL文件...')

for ll_col= 1 to ll_columncount

ls_colname= lds_tmp.describe("#"+string(ll_col)+".name")

ls_coltext= lds_tmp.describe(ls_colname+"_t.text")

if left(ls_coltext,1)='"' then

ls_coltext= mid(ls_coltext,2,len(ls_coltext)- 2)

ls_coltype= Lower(lds_tmp.Describe("#"+ string(ll_col)+".ColType"))

if lds_tmp.describe(ls_colname+".visible")<>'1' then

lds_tmp.MODIFY("destroy column"+ls_colname)

lds_tmp.MODIFY("destroy"+ls_colname+'_t')

lds_buff.MODIFY("destroy column"+ls_colname)

lds_buff.MODIFY("destroy"+ls_colname+'_t')

ls_col_exl= char(ASC("A")+ll_validcol-1)+":"+char(ASC("A")+ll_validcol-1)

ExcelServer.Columns(ls_col_exl).Select()//整列选取,用于设置数据格式

li_bit= int((ll_validcol-1)/26)//进位

li_mod= mod((ll_validcol-1),26)//余数

ls_col_exl= char(ASC("A")+li_bit-1)+char(ASC("A")+li_mod)+':'+char(ASC("A")+li_bit-1)+char(ASC("A")+li_mod)

ExcelServer.Columns(ls_col_exl).Select()

ExcelServer.Selection.HorizontalAlignment=-4108

ExcelServer.Selection.VerticalAlignment=-4108

CHOOSE CASE Left( ls_coltype, 4)

ExcelServer.Selection.NumberFormatLocal="@"

ExcelServer.Selection.HorizontalAlignment=-4131//居左

ExcelServer.Selection.NumberFormatLocal="yyyy-m-d"

ExcelServer.Selection.HorizontalAlignment=-4108//居中

ExcelServer.Selection.NumberFormatLocal="0.00_"

ExcelServer.Selection.HorizontalAlignment=-4152//居右

CASE"int","long","numb","ulon"

ExcelServer.Selection.NumberFormatLocal="0_"

ExcelServer.Selection.HorizontalAlignment=-4108//居中

ExcelServer.Selection.Font.ColorIndex=-4105

ls_col_exl= char(ASC("A")+ll_validcol-1)+'1'

ExcelServer.Range(ls_col_exl).Select()

ls_col_exl= char(ASC("A")+li_bit-1)+char(ASC("A")+li_mod)+'1'

ExcelServer.Range(ls_col_exl).Select()

ExcelServer.Selection.Borders(7).LineStyle= 1

ExcelServer.Selection.Borders(7).Weight= 2

ExcelServer.Selection.Borders(8).LineStyle= 1

ExcelServer.Selection.Borders(8).Weight= 2

ExcelServer.Selection.Borders(9).LineStyle= 1

ExcelServer.Selection.Borders(9).Weight= 2

ExcelServer.Selection.Borders(10).LineStyle= 1

ExcelServer.Selection.Borders(10).Weight= 2

ExcelServer.Selection.Interior.ColorIndex= 15

ExcelServer.Selection.HorizontalAlignment=-4108//标题行居中

ExcelServer.Selection.VerticalAlignment=-4108//垂直居中

ll_colwidth= long(lds_tmp.describe(ls_colname+'.width'))*3.2/100

if not isnull(ll_colwidth) and ll_colwidth>0 then

ExcelServer.Selection.ColumnWidth= ll_colwidth

ls_col_exl= char(ASC("A")+ll_validcol-1)+'1'

ExcelServer.Range(ls_col_exl).FormulaR1C1= ls_coltext

ls_col_exl= char(ASC("A")+li_bit-1)+char(ASC("A")+li_mod)+'1'

ExcelServer.Range(ls_col_exl).FormulaR1C1= ls_coltext

/*2008-10-28更新-------------------/

auo_dw—>lds_tmp—>lds_buff———→Excel

\*---------------------------------*/

openwithparm(w_wait,'正在写入EXCEL文件...')

long ll_rowsread= 500//缓冲行数

do while lds_tmp.rowcount()> 0

if ll_rowsread> lds_tmp.rowcount() then

ll_rowsread= lds_tmp.rowcount()

lds_tmp.rowsmove( 1, ll_rowsread, Primary!, lds_buff, 1, Primary!)

if lds_buff.SaveAs('',Clipboard!,false)=-1 then goto lb_exit

ExcelServer.Range("A"+string(ll_rows+1)).Select()

ExcelServer.ActiveSheet.Paste()

ls_col_exl="A2:"+char(ASC("A")+ll_validcol-2)+string(auo_dw.rowcount()+1)

ExcelServer.Range(ls_col_exl).Select()

ls_col_exl="A2:"+char(ASC("A")+li_bit-1)+char(ASC("A")+li_mod)+string(auo_dw.rowcount()+1)

ExcelServer.Range(ls_col_exl).Select()

if auo_dw.rowcount()> 0 then

ExcelServer.Selection.Borders(7).LineStyle= 1

ExcelServer.Selection.Borders(7).Weight= 2

ExcelServer.Selection.Borders(8).LineStyle= 1

ExcelServer.Selection.Borders(8).Weight= 2

ExcelServer.Selection.Borders(9).LineStyle= 1

ExcelServer.Selection.Borders(9).Weight= 2

ExcelServer.Selection.Borders(10).LineStyle= 1

ExcelServer.Selection.Borders(10).Weight= 2

ExcelServer.Selection.Borders(11).LineStyle= 1

ExcelServer.Selection.Borders(11).Weight= 2

if auo_dw.rowcount()> 1 then

ExcelServer.Selection.Borders(12).LineStyle= 1

ExcelServer.Selection.Borders(12).Weight= 2

ExcelServer.Range("A1").Select()

////////////////////////////////////

ExcelServer.Application.ActiveWorkbook.SaveAs(ls_filepath,-4143,"","",False, False)

gs_err_v_text[1]="已经成功将数据导出到"+ls_filepath+",是否打开查看?"

if fc_disp_msg(10010,2)= 1 then

ExcelServer.Application.Visible= true

ExcelServer.Application.Workbooks.close()

ExcelServer.DisConnectObject()

三、powerbuilder9.0版本的程序能否用PB12.0打开..

1、你最好不要使用PB12来打开PB9的文件,因为PB是向上兼容,也就是PB12可以打开并且运行PB9的程序,但是一旦使用PB12打开以后,就无法再使用PB9打开了。这样会是程序的版本提高了。每个版本都有自己相关的动态链接库文件,也就是DLL文件,而你升级到12后,就要使用12的DLL文件才可以执行。

2、您还是找一个PB9装上吧,现在PB9的程序下载应该还有很多的。

3、如果一定要使用PB12运行,那么用PB12打开,打开后会提示你编译,编译一下。这样源代码就可以用了。另外你还要重新生成可执行程序,也就是EXE文件和PBD或者DLL文件,在新建,然后选择PROJECT,选第一个,默认往下就行了。

如果你还想了解更多这方面的信息,记得收藏关注本站。