
配置成功之后,可以直接在DataBase Painter里面,打开你配置的数据库,选择你要添加数据的表,然后点右键,edit data,打开所有的数据,然后上方菜单里分别有两个按钮,insert和save,insert表示增加一个空行,你可以在里面编辑数据,save表示把数据保存到表中。这样可以实现,不过都是单条的自己手动写进去的。
这里还可以导入数据,不过要格式匹配,包括字段的数量,顺序,类型导入模板,和你查询的结构必须匹配才可以。这个所谓的查询,可以使用edit data,打开的框架,还可以自己写一个查询语句,在isql session页写查询语句点execute按钮执行查询,不过这个执行的查询,要单表,否则不知道保存哪个表了。
还可以自己写程序插入。利用数据窗口,或者利用insert 语句插入数据。
例子1:动态创建有SQL的DW说明:这个比较常用的方法,首先利用SQL得到DW的语法,然后用语法来创建DW
这过程跟创建可视化的DW,然后保存在PBL,
在将这个保存的名字赋值给DW作为dataobject是同样的道理
string ls_sql = ""
string ls_syntax = ""
string ls_err = ""
// 初始化, SQL以oracle为例
// ls_sql = "select FIELDS from TABLE"
ls_sql = "select ‘’ as sID, '' as sName from dual"
// 创建syntax, 用ls_sql创建一个grid类型的DW
sqlca.syntaxFromSQL(ls_sql, "style(type=grid)", ls_err)
if len(ls_err) >0 then
messageBox('Error', ‘Create DW syntax failed! ~r~n’ + ls_err)
return -1
end if
// 创建DW
ls_err = ‘’
dw_1.create(ls_syntax, ls_err)
if len(ls_err) >0 then
messageBox('Error', ‘Create DW failed! ~r~n’ + ls_err)
return -1
end if
// 创建成功
messageBox('Success', 'Create dynamic DW with SQL successful!')
例子2:动态创建外部数据源的DW(没有SQL)
说明:外部数据源的DW没有SQL,但跟有SQL的DW相同的部分就是DW语法的table部分。
而创建DW的时候,利用syntax来创建就好了,SQL创建syntax就可以省略。
对于例如区域、显示、HTML、update等等属性, PB都有默认的设置。
所以无需用过份详细的syntax来创建DW,那部分将由PB帮助完成,只需要有table部分就可以了。
string ls_syntax = ""
string ls_err = ""
// 由SQL创建syntax部分省略
// 初始化syntax, release 9表示PB9.0的例子
ls_syntax = "release 9~r~n" +&
"table(" +&
" column=(type=number name=handle dbname=~"handle~" )~r~n" +&
" column=(type=char(255) name=sdata dbname=~"sdata~" )~r~n" +&
" column=(type=char(255) name=slabel dbname=~"slabel~" )~r~n" +&
")"
// 创建DW
ls_err = ‘’
dw_1.create(ls_syntax, ls_err)
if len(ls_err) >0 then
messageBox('Error', ‘Create DW failed! ~r~n’ + ls_err)
return -1
end if
// 创建成功
messageBox('Success', 'Create dynamic DW without SQL successful!')
©All copyright resersed
Ben.Sin (Ben.BHX#gmail.com)
简单来说就是用户名、密码两个文本框和确定按钮,里面获取输入信息,检查数据库有没有重复的,利用sql语句进行保存不过里面涉及防注入、密码强度控制、代码健壮性等等细节
建议你去华软论坛等pb讨论网站下载现成的程序学习,或者买书,书上对这个基本东西都有很好的代码示例
我做的其中一个例子如下:
ls_dm = dw_dm.getitemstring(ll_row,'dm')
ls_mc = dw_dm.getitemstring(ll_row,'mc')
ls_kl = dw_dm.getitemstring(ll_row,'kl')
ldt_t = datetime(today())
if isnull(ls_dm) then ls_dm = ''
if isnull(ls_mc) then ls_mc = ''
if isnull(ls_kl) then ls_kl = ''
if is_state = 'add' then
delete cm_yhzd where yhdm = :ls_dm
insert cm_yhzd(yhdm,yhmc,yhkldlsj) values(:ls_dm,:ls_mc,:ls_kl:ldt_t)
if sqlca.sqlnrows <= 0 then
messagebox("系统信息",'更新数据时出错!~r~n' + sqlca.sqlerrtext)
rollback
return
end if
commit//提交数据库
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)