New release of Perl DBD::ODBC with support for MS SQL Server_MySQL

php中文网
发布: 2016-06-01 13:16:17
原创
1328人浏览过

i just released the 3rddevelopment release of dbd::odbc (1.39_3). apart from a few bug fixes and other changes (see below) this release adds support for ms sql server query notification. query notification allows an application to request a notification from sql server when the results of a query change. once set up you can block on an execute call waiting for the query to change. here is an excerpt from the pod:

MS SQL Server Query Notification

Query notifications were introduced in SQL Server 2005 and SQL Server Native Client. Query notifications allow applications to be notified when data has changed.

DBD::ODBC supports query notification with MS SQL Server using the additional prepare attributes odbc_qn_msgtxt, odbc_qn_options and odbc_qn_timeout. When you pass suitable values for these attributes to the prepare method, DBD::ODBC will make the appropriate SQLSetStmtAttr calls after the statement has been allocated.

It is beyond the scope of this document to provide a tutorial on doing this but here are some notes that might help you get started.

造物云营销设计
造物云营销设计

造物云是一个在线3D营销设计平台,0基础也能做电商设计

造物云营销设计 97
查看详情 造物云营销设计

On SQL Server

  • Create database MyDatabase
  • ALTER DATABASE MyDatabase SET ENABLE_BROKER
  • use MyDatabase
  • CREATE TABLE QNtest (a int NOT NULL PRIMARY KEY, b nchar(5) NOT NULL, c datetime NOT NULL)
  • INSERT QNtest (a, b, c) SELECT 1, 'ALFKI', '19991212'
  • CREATE QUEUE myQueue
  • CREATE SERVICE myService ON QUEUE myQueue

To subscribe to query notification for this example

# Prepare the statement.
# This is the SQL you want to know if the result changes later
my$sth=$dbh->prepare(q/SELECT a, b, c FROM dbo.QNtest WHERE a = 1/,
                         {odbc_qn_msgtxt=>'Message text',
                           odbc_qn_options=>'service=myService;local database=MyDatabase',
                           odbc_qn_timeout=>430000});
# Fetch and display the result set value.
while(my@row=$sth->fetchrow_array){
   print"@row/n";
}
# select * from sys.dm_qn_subscriptions will return a record now you are subscribed

To wait for notification

# This query generates a result telling you which query has changed
# It will block until the timeout or the query changes
my$sth=$dbh->prepare(q/WAITFOR (RECEIVE * FROM MyQueue)/);
$sth->execute();
# in the mean time someone does UPDATE dbo.QNtest SET c = '19981212' WHERE a = 1
# Fetch and display the result set value.
while(my@row=$sth->fetchrow_array){
     print"@row/n";
}
# You now need to understand the result and look to decide which query has changed

Now for the complete changes since 1.38

1.49_3 2014-05-01

[CHANGE IN BEHAVIOUR]

  • As warned years ago, this release removes the odbc_old_unicode attribute. If you have a good reason to use it speak up now before the next non-development release.

[BUG FIXES]

  • Fix rt89255: Fails to create test table for tests using PostgreSQL odbc driver. Change test suite to fallback on PRECISION if COLUMN_SIZE is not found.

[ENHANCEMENTS]

  • Added support for MS SQL Server Query Notification. See the new section in the pod.
  • Added a currently undocumented (and experimental) odbc_describe_param method on a statement handle which takes a parameter number as the only argument and returns an array of the data type, parameter size, decimal digits and nullable (as per SQLDescribeParam).

[DOCUMENTATION]

  • Added FAQ on truncated column names with freeTDS.

[MISCELLANEOUS]

  • I have removed the "experimental" tag for odbc_getdiaffield and odbc_getdiagrec methods.

1.49_2 2014-04-26

[BUG FIXES]

  • Change to data_sources in 1.49_1 could lead to a compile error since data_sources was not returning a value if an error occurred.

1.49_1 2014-04-25

[BUG FIXES]

  • If you had a lot of DSNs on Windows (more than 280 but it depends on the length of their names) and called the data_sources method it could crash your script. Code internally changed to stop putting the DSNs returned on the stack.

[CHANGE IN BEHAVIOUR]

  • As warned years ago, the private data_sources method has been removed - use DBI one instead.
  • [MISCELLANEOUS]

    • Added FAQ entry of maximum number of allowed parameters.
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号