2022年PB用ODBC连接数据库和用专用接口连接数据库的区别 .pdf
问题 1:PB 用 ODBC 连接数据库( SQL Server)和用专用接口连接数据库的区别?我发现 PB 用专用接口连接数据库时,对Varchar型字段最多只能存200 多个汉字,但是用ODBC连接可以存4000 个,可达到Varchar(8000)的最大长度,这是什么原因,怎么改进?专用接口连接数据库时, 对 SQL Server的存储过程支持要比ODBC 好, 如果用 ODBC 连接,对带参数的数据窗口(采用存储过程),没法传递参数,但是专用接口连接数据库却可以。问题 2:关于 PB 动态生成数据窗口的问题。比如用如下代码生成一个数据窗口,在编辑时每一个编辑框都会出现一个兰色的背景框或者底框,怎么去掉?= string ERRORS, sql_syntax string presentation_str, dwsyntax_str sql_syntax = SELECT emp_data.emp_id,& + emp_data.emp_name FROM emp_data & + WHERE emp_data.emp_salary 45000 presentation_str = style(type=grid) dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, & presentation_str, ERRORS) IF Len(ERRORS) 0 THEN MessageBox(Caution, & SyntaxFromSQL caused these errors: + ERRORS) RETURN END IF dw_1.Create( dwsyntax_str, ERRORS) IF Len(ERRORS) 0 THEN MessageBox(Caution, & Create cause these errors: + ERRORS) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - RETURN END IF DW_1.settransoject(sqlca) dw_1.retrieve() = 不能贴图,大家可以自己实验一下,应该是生成那个 SQL 的字符串 sql_syntax 不够细致,怎么样能使数据窗口漂亮些。希望和大家多多交流。问题点数: 46、回复次数: 9 Top1 楼 klbt (快乐白兔) 回复于2003-08-28 17:58:10 得分 3试过了,确实有这个问题。在创建后,可能需要用modify 函数了。还有一个办法:在clicked 事件中加上if row 0 then selectrow(0,false) selectrow(row,true) end if 来掩盖一下Top2 楼 runsoft(清风) 回复于2003-08-28 18:51:53 得分 5我也碰到过这个情况,你使用dw_x.Object.DataWindow.Selected.Mouse = false 试一下,没有测试,_。 Top3 楼 allima(allima)回复于2003-08-28 20:18:27 得分 5我也碰到过这个情况,pb8 中对汉字处理的更乱,比如用形如 left(ls_string,len(ls_string) - 2)的方法处理汉字字符串 ,效果更差 . Top4 楼 workhand(我可憨了 .)回复于2003-08-29 10:28:56 得分4tab_1.tabPage_2.dw_2.Modify(datawindow.grid.ColumnMove= No)/ 去掉黑 item tab_1.tabPage_2.dw_2.Modify(DataWindow.Selected.Mouse=No) click 事件:if row 0 then selectrow(0,false) scrolltorow(row) selectrow(row,true) end if 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - Top5 楼 kalven_chan(钱锋) 回复于2003-08-29 11:57:57 得分 8这个问题我也提过,PB 连 MSSQL Server 的专用接口还是原先的6.5 的版本,可能是竞争关系所以才压制微软。即使输入框修改成大于255 字节的,它还是不能保存这么多。ODBC 毕竟是微软提供的,不一样啊。Top6 楼 kalven_chan(钱锋) 回复于2003-08-29 12:00:10 得分 4有汉字处理,就要用ascII 码的大小来处理了,好像没好的办法。sqlserver 用 Len 函数判断字串长度,是按照不同字符来的,一个中文字符也是1 Top7 楼 bomber2001(沧海飘舟) 回复于2003-08-29 13:17:50 得分 1up Top8 楼 guofengchs(guofeng)回复于2003-09-02 10:18:34 得分15建议各位使用PB 连接 MS SQL SERVER 的时候使用OLE 驱动 ,保证比较好的效率下的优良兼容性. 直连驱动虽然效率不错,但是随着 MS SQL SERVER 的版本改变 ,有兼容的问题 . 在使用 OLEDB 时,首先要确保你的PB 不是默认安装的 ,因为默认安装是不会装OLEDB 的驱动 ,只有用自定义安装的时候把OLEDB 地支持选上去 ,这样 PB 运行后再 DB PROFILE 里面会多一个OLEDB. OLEDB 的驱动使用的文件事PBOLEx0.DLL x为版本号 ,然后 CLIENT 端只要有这个DLL 加上MDAC组件就可以RUN 了,这个方法尤其对TCP/IP 支持的好 . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -