游标操作时进行Update应注意的一个问题

 更新时间:2016年11月25日 16:44  点击:1293
在进行游标操作时,如果你使用了Order by 子句,但Order by 的字段没有索引, 则会导至游标为只读属性, 并且不能指定
为for Update状态.
解决办法有去掉Order by 子句或者对Order by的字段进行索引.

Microsoft SQL Server 7.0 的数据迁移到MySQL上的方法
Zhbforce
想必大家都很喜欢用Word打字,用Excel进行计算和规划,用PowerPoint作幻灯片进行展示…,但是这只用到了Office系列产品的很少的一部分功能。据调查,绝大部分用户只用到了Office产品的20%的功能,很少有人注意到Visual Basic for Application。实际上,熟悉掌握VBA的功能可以使你的工作事半功倍,尤其对会计、金融等专业来说,作出一套好的宏,几乎可以作到一劳永逸!最近,AutoCAD中也加入了VBA的功能,这不能不说这是一个趋势!
VBA的功能决不只是让病毒制造者用来制造麻烦的,VBA能被用来制造病毒的同时也正说明了其功能的强大与易用!利用ADO对象,可以很方便的进行数据库操作!下面就是一个简单的数据交换的例子:
由于ADO对象不直接支持MySQL,所以必须先安装MyODBC, 后者也是一个免费产品,在www.mysql.org上有下载,安装好了MyODBC, 就可以在ODBC数据源管理中配置一个数据源名称,把它指向你想连接的MySQL数据库。代码如下:
Sub connectMySQL()
'通过MyODBC去连接MySQL数据库,并将Microsoft SQL Server 7
'的数据转进mysql中
Dim sConnect As String, sSql As String, i As Long
Dim cnMSSQL As New ADODB.Connection
Dim cnMySQL As New ADODB.Connection
'声明并创建对象 连接
Dim rs As New ADODB.Recordset '声明并创建对象 记录集
Dim cm As New ADODB.Command '声明并创建对象 命令

sConnect = "dsn=mysql1" '指定MySQL的数据源名称
cnMySQL.Open sConnect '连接到 mysql

sConnect="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=123456;Initial Catalog=softdown;Data Source=ntserver"
'连接到 ms sql server 7
cnMSSQL.Open sConnect

'sSql = "create table softinfo (softNum smallint,softname varchar(70),softdesc blob," & _
"softpath varchar(30),softleng varchar(10),softclass varchar(10),softsugest tinyint(1)," & _
"softdown smallint(4))" '创建新的MySQL数据表语句
sSql = "select * from softinfo order by softnum"
rs.Open sSql, cnMSSQL, 1, 1
比如查找用户名包含有"c"的所有用户, 可以用
use mydatabase
select * from table1 where username like'%c%"
下面是完成上面功能的另一种写法:
use mydatabase
select * from table1 where charindex('c',username)>0
这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字
符串及其它的运算上, 所以运用charindex函数也没什么大不了. 用这种方法也有好处, 那就是对%,|等在不能直接用like
查找到的字符中可以直接在这charindex中运用, 如下:
use mydatabase
select * from table1 where charindex('%',username)>0
也可以写成:
use mydatabase
select * from table1 where charindex(char(37),username)>0
ASCII的字符即为%

可以采用exec方法
declare @tempStr varchar(350)
select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' convert(varchar,@week) '] 1 where
userid=''' replace(@user,'''','''''') ''''
exec(@tempStr)
注意: 使exec不能返回一些变量的值,而且当前的变量值在exec的语句里无效.

我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的 功能,我们
可以通过采取以下的功能实现自动增加ID的功能
1.首先创建 sequence
create sequence seqmax increment by 1
2.使用方法
select seqmax.nextval ID from dual
就得到了一个ID
如果把这个语句放在 触发器中,就可以实现 和 ms sql 的自动增加ID相同的功能!


[!--infotagslink--]

相关文章

  • MySQL中SELECT+UPDATE处理并发更新问题解决方案分享

    问题背景: 假设MySQL数据库有一张会员表vip_member(InnoDB表),结构如下: 当一个会员想续买会员(只能续买1个月、3个月或6个月)时,必须满足以下业务要求: •如果end_at早于当前时间,则设置start_at为当前时间,end_at为当前时...2014-05-31
  • Mybatis执行update失败的解决

    这篇文章主要介绍了Mybatis执行update失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-01
  • 解决Mybatis中mapper.xml文件update,delete及insert返回值问题

    这篇文章主要介绍了解决Mybatis中mapper.xml文件update,delete及insert返回值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-23
  • 详解git submodule update获取不到最新提交的代码

    这篇文章主要介绍了详解git submodule update获取不到最新提交的代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-21
  • Mysql 原生语句中save or update 的写法汇总

    背景  在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢?  ...2015-03-15
  • mysql update case 更新字段值不固定的操作

    这篇文章主要介绍了mysql update case 更新字段值不固定的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • php update数据更新简单实例

    sql update记录更新详细实例 语法: [ WITH <common_table_expression> [...n] ] UPDATE [ TOP (expression) [ PERCENT ] ] { { table_alias | <object>...2016-11-25
  • 网站改版要怎么那些?网站改版注意事项

    站改版是每个站长必然经历的过程,也是每个网站必定会发生的状态。网站希望建设越来越好改版是不可避免的,但是网站改版对于网站优化和推广来说又是一大弊端,无论是网站结...2016-10-10
  • Mysql 数据库死锁过程分析(select for update)

    最近有项目需求,需要保证多台机器不拿到相同的数据,后来发现Mysql查询语句使用select.. for update经常导致数据库死锁问题,下面小编给大家介绍mysql 数据库死锁过程分析(select for update),对mysql数据库死锁问题感兴趣的朋友一起学习吧...2015-12-14
  • 站长注意:网站性能最佳体验

    1、尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减...2016-10-10
  • php 总结数值计算的注意事项

    php数值计算有一些结果可能并不是我们想的那样但它这样计算有自己的理论基础了,下面我们来看一篇php 总结数值计算的注意事项吧。 一:四舍五入 1.round —...2016-11-25
  • MySQL中UPDATE与DELETE语句的使用教程

    这篇文章主要介绍了MySQL中UPDATE与DELETE语句的使用教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下...2015-12-18
  • 网站SEO中页面搜索结果匹配的注意事项

    什么是搜索结果匹配?非常简单,我们把它分成完全匹配和部分匹配。那么究竟什么是完全匹配呢?我们先来举个例子,百度搜“seo是什么”,结果中出现红色的字就是匹配项。 ...2016-10-10
  • MYSQL到ORACLE程序迁移的注意事项

    MYSQL到ORACLE程序迁移的注意事项 2001-09 有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随...2016-11-25
  • mysql修改记录时update操作 字段=字段+字符串

    这篇文章主要介绍了mysql修改记录时update操作 字段=字段+字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • 经验共享:网站建设中应该注意的12个错误

    本文认真总结了网站建设中我们难免犯的一些错误,希望大家做网站的时候要提高警惕。   1. “欢迎访问本站”?免了吧!   像这样没有意义的玩艺儿,包括商号...2017-07-06
  • MySQL使用游标批量处理进行表操作

    这篇文章主要介绍了MySQL使用游标批量进行表操作,包括批量添加索引、批量添加字段等,感兴趣的小伙伴们可以参考一下...2016-03-27
  • 高端网站建设规避网站设计注意事项

    今天文章要给大家介绍的是高端网站建设规避网站设计注意事项,让大家更好的了解网站建设,还不知道的下面就一起来看看。 现在做网站不仅仅只是做网站这样简单,如何让...2017-07-06
  • MySQL触发器 Update触发Insert失败

    这篇文章主要介绍了MySQL触发器 Update触发Insert失败 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-25
  • Oracle使用游标进行分批次更新数据的6种方式及速度比对

    这篇文章主要介绍了Oracle使用游标进行分批次更新的5种方式及速度比对,帮助大家更好的理解和使用数据库,感兴趣的朋友可以了解下...2020-10-22