作者:手哥2502852243 | 来源:互联网 | 2023-05-18 04:48
PB9,MSSQL2000,请教,使用“OLEMicrosoftOLEDB”数据接口,与使用“MSSMicrosoftSQLServer”的区别,以及产生的问题如何解决?一个程序P
PB9,MSSQL2000,请教,使用“OLE Microsoft OLE DB”数据接口,与使用“MSS Microsoft SQL Server”的区别,以及产生的问题如何解决?
一个程序PB9,MSSQL2000,原来编写的时候,使用的是“MSS Microsoft SQL Server”接口连接的数据库
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "fcjg"
SQLCA.LogPass = sa
SQLCA.ServerName = "clzw-ljh"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = True
SQLCA.DBParm = ""
--------------------------------------------------------------------------------
现在改用“OLE Microsoft OLE DB”连接
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = sa
SQLCA.LogId = "sa"
SQLCA.AutoCommit = True
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='clzw-ljh',PROVIDERSTRING='database=fcjg',TIMEOUT=10"
--------------------------------------------------------------------------------
两种连接数据库的方法都是可以正常连接数据库的。问题是
原来使用"MSS Microsoft SQL Server"连接时,数据库中一个长度为10的字符列中如果只有3个字符,例如"123",哪么在PB中类似
SELECT .... INTO....这样的语句取出的 字符串 就是 "123"
而改用"OLE Microsoft OLE DB"连接时,类似
SELECT .... INTO....这样的语句取出的 字符串 就是 "123 "
在数据窗口中也会出现这种情况。这两种区别造成了整个程序的混乱。
一问:这种区别是如何产生的?
二问:如何让用"OLE Microsoft OLE DB"跟用"MSS Microsoft SQL Server"连接时一样?
11 个解决方案
论坛的问题:
这句话
--------------------------------------------------------
而改用"OLE Microsoft OLE DB"连接时,类似
SELECT .... INTO....这样的语句取出的 字符串 就是 "123 "
--------------------------------------------------------
意思是:
而改用"OLE Microsoft OLE DB"连接时,类似
SELECT .... INTO....这样的语句取出的 字符串 就是 "123口口口口口口口"
“口”代表“空格”
SQLCA.DBParm 里加上PBTrimCharColumns='YES'
谢谢楼上二位,代码中加入这句后可以了。
但还要问下,
1、这个 PBTrimCharColumns='YES' 在PB的 Database Profiles 中如何选择?哪个选项是它?
2、"OLE Microsoft OLE DB"连接与"MSS Microsoft SQL Server"连接还有其他的那些区别吗?担心这个解决了又出其他的问题。
这个问题,在数据库设置字段为varchar型也可以解决。
两种连接的区别,还有一个重要的方面,就是并发控制。
re : lovemoreh
请说下并发控制的区别
re : zb63668331
一,在编写程序过程中 要用到 Database Profiles 的啊
二,马上就有问题了
代码中有句
INSERT INTO sfjl(xh,jyear,jmonth,bm,qubh,louhao,mph,jzmj,symj,yzf,ywf,sfbz,jfxz,jfxs)
SELECT "退/补",:d_year,:i,bm,qubh,louhao,mph,jzmj,symj,:d_yzf,:d_ywf,1,"当年","现金" FROM main where sfbz = 1 and bm = :i_bm ;
用“MSS Microsoft SQL Server”连接时正常能插入数据,而在用“OLE Microsoft OLE DB”时候就不能,
跟踪发现好像提示 "退/补"是无效的列
,使用“OLE Microsoft OLE DB”数据接口,与使
在
我一般是设置:
transobject.lock = 'rc'.
你参考看看。
pb11 就只有OLE Microsoft OLE DB了