pb中常常碰到的问题

 

怎样在一个程序中连接两个数据库


问:SOS 怎样在一个程序中连接两个数据库?数据库在两台机器中,一个是SQL6.5,一个是SQL7.0。

答:

你可以这么做
Transaction mytrans1,mytrans2
mytrans1=Create Transaction
mytrans2=Create Transaction
mytrans1.DBMS="驱动程序类型"
mytrans1.DBParm="这里填连接Sql6.5的字串"
mytrans2.DBMS="驱动程序类型"
mytrans1.DBParm="这里填连接Sql7.0的字串"
connect using mytrans1;
connect using mytrans2;
剩下的你知道该怎么做了?

eg:
Transaction mytrans1,mytrans2
mytrans1=Create Transaction
mytrans2=Create Transaction
mytrans1.DBMS = "ODBC"
mytrans1.AutoCommit = False
mytrans1.DBParm = "ConnectString='DSN=YourDsnforSql6.5DB'"
connect using mytrans1;
IF mytrans1.sqlcode = -1 THEN
Messagebox("",Yourmessage)
disconnect using mytrans1;
halt
end if

mytrans2.DBMS = "ODBC"
mytrans2.AutoCommit = False
mytrans2.DBParm = "ConnectString='DSN=YourDsnforSql7.0DB'"
connect using mytrans2;
IF mytrans2.sqlcode = -1 THEN
Messagebox("",Yourmessage)
disconnect using mytrans2;
halt
end if

//If t65 is a table in your sql6.5 Database,t70 is a table in your sql7.0 Database and
//dw_1 and dw_2 are DataWindow Control ,dwo_sql65 and dwo_sql70 are respectedly DataWindow Object
//for t65 and t70 then
dw_1.dataobject="dwo_sql65"
dw_1.settransobject(mytrans1)
dw_1.retrieve()//It is best to test error
dw_2.dataobject="dwo_sql70"
dw_2.settransobject(mytrans2)
dw_2.retrieve()//It's the same as above
//Then ,you can manipulate the data by dw_1 and dw_2
//Do you understand?

如何在pb中获取本机或网络中已配置的打印机的列表?


问:如何在pb中获取本机或网络中已配置的打印机的列表?

答:
phytie说:
这是利用window api函数实现的,在pb7.0实力进阶手册这本书中有例子

pbfan说:
读注册表也可以。找printer

kukoc 补充:打印机清单:
string ls_print[]

integer li_rtn
li_rtn = RegistryKeys("HKEY_LOCAL_MACHINE/Config/0001/System/CurrentControlSet/Control/Print/Printers", ls_print)

问:在大作《我是新手,请教一个问题,命令按钮怎么不能用键盘?》中提到:
请问:我在设计登陆窗口时,用命令按钮,但只能用鼠标驱动,键盘的Enter键不起作用,这是为什么?各位高手:回答我好吗?


答:(有多条,虽然答案不相同,其实可以从不同的用途来理解,故都罗列于此。)

默认是TAB键转移焦点,空格键触发,要变为方向键转移焦点,回车键触发,用以下代码:
窗口的key事件:
GRAPHICOBJECT cb_control //定义环境变量
CHOOSE CASE KEY
CASE keyrightarrow! //按光标右键右移焦点
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
CASE keydownarrow! //按光标下键右移焦点
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
CASE keyleftarrow! //按光标左键左移焦点
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
CASE keyuparrow! //按光标上键左移焦点
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
CASE keyenter! //回车键触发焦点处控件
cb_control=GETFOCUS()
IF TypeOf(cb_control)=COMMANDBUTTON! THEN
Triggerevent(cb_control,clicked!)
END IF
END CHOOSE

Re:我是新手,请教一个问题,命令按钮怎么不?

    在大作《Re: 我是新手,请教一个问题,命令按钮怎么不能用?》中提到:
    作为新手,看书要仔细,你的问题很简单:设置CommandButton的Defult属性为True,那么在你按    Enter键时就会促发此按钮的Clicked事件,Cancel属性对应Esc键。或自定义:在按钮的文本前加入"&*"--'*'代表任意字母,如要定义按钮的快捷键为Alt+A,则在其文本中加入"&A"即可.



这样是不行的,default只能用于一个按钮,一般是用于messagebox中,cancel也是同理,'&*'--'*'也不是关键
最简单就是在按钮的事件中加入一个用户自定义的事件keydown,event code 为pmb_keydown
这样只要
在此事件中判断是不是有enter键就行了
//code
if key=keyenter! then
//your clicked code
end if

在WINDOW画板中,选择希望响应ENTER键的BUTTON,选择菜单DECLARE/USER EVENTS,新增系统事件EVENT NAME:Keydown,EVENT ID:pdm_keydown
然后进入BUTTON的SCRIPT画板,选择KEYDOWN事件写入代码
if key = KeyEnter! then
// Add Your Scripts
end if

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值