Lazarus连接MSSQLServer的连接问题

Lazarus连接MSSQLServer有两种方式,一种是自带的ODBCConnection,一种是使用第三方控件。

其自带的MSSQLConnection和SQLConnector不能直接连接MSSQLServer数据库,无论怎么设置都是白费劲,提示External:ACCESS VIOLATION。如果有成功的高手请赐教一下。但是SQLConnector也可以通过ODBC连接。

第三方控件我测试了两个,一个是zeosdbo一个是SDAC,感觉后一个比较好用。

SDAC在使用SQLServer时,Nvarchar(MAX)字段显示异常,需要在MSQuery的属性DataTypeMap中设置NText-->Memo映射一下(options--dgdisplaymemotext=true)。或者直接用字段名映射字段类型。zeosdbo一直没有找到方式。

zeosdbo连接SQLServer时,sql语句使用汉字表名需要加上引号[]才可以识别,否则显示乱码并提示错误。。

另外,Lazarus中使用属性时,发现自动提示的属性或方法后面有的加了一把小锁,不知何意,使用时发现有时不能正常的反馈结果,难道是受限制或和其他属性一并使用的提示?一直没有弄明白。比如SqlQuery1.RecordCount;自动提示的Prepared属性后有一把小锁,反馈的结果不是实际的计数,第一次是20,再刷新可能会显示实际计数,这是在PacketRecord:=-1的情况下出现的问题。尝试用Rowsaffected,可以显示正确计数。这个和Delphi中的Adoquery不一样。

另外,在3.0RC1和2.2.6版本,你想用拼音录入 //显示全部 时,当联想显示过程到 //县市区 后,系统自动退出。直接录入 //县市区 没有问题。测试后,微软的拼音录入没问题,手心录入法有问题。可能是软件冲突。

初学,暂时写这么多吧,以上有误请指正。

2023.10.23补充

感谢码友Q315054403提供MSSQL驱动控件,已经可以使用MSSQLConnection连接数据库,这个连接还解决了UTF8的乱码问题,非常感谢!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值