如果已经用的rs("flag")取出来数据,那就用replace函数把01替换成想要的字符,然后再写回去
或者直接用一句sql语句
UPDATE 表名 SET flag=REPLACE(flag,'01','你要替换的值')
________________________________________
上边只是说了一下方法,具体运用还得看具体情况,那你说一下什么情况替换哪一部分值,我帮你想一下
那段代码不能执行的话,提示什么错误啊?
__________________________________________
不知道你的业务逻辑什么样的,不过感觉这样设计数据库并不很合理,让很多 *** 作很难去做,按照你的说法大概写了一下,我假定flag字段清空的时候是00,00,00了,如果必须是00的话中间加句判断就行了,大概写了一下,你拷过去调试一下
<%
set rs=servercreateobject("adodbrecordset")
sql="select flag from mytable where id="&request("id")&""
rsopen sql,conn,3,3
'
arrFlag = Split(rs("flag"),",")'flag这个字段默认值应该是00,00,00
If(request("btn") ="A") Then '判断用户点击了哪个按钮,记得在你的页面的几个按钮加一个传递参数的语句
arrFlag(0) = "01" '如果点击A按钮则第一部分设置为01
ElseIf (request("btn") ="B") Then
arrFlag(1) = "02" '如果点击A按钮则第二部分设置为02
ElseIf (request("btn") ="C") Then
arrFlag(2) = "03" '如果点击A按钮则第三部分设置为03
End If
If(request("btn") <>"D") Then '修改成功后合并并写入
rs("flag") = Join(arrFlag,",")
Else
rs("flag") = "00,00,00" '如果点击D按钮,则全部清零
End If
'
rsupdate
rsclose
set rs=nothing
connclose
set conn=nothing
%>
在把Oracle查询结果转换为SQL
Server的时候要特别当心一些不容易注意到的问题。
我们知道,T-SQL是SQL
Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对
ANSI
SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL
Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL
Server的要求是一样的。
SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’
FROM
dual
而对等的SQL
Server查询则是下面这个样子:
SELECT
‘x’
连接
Oracle用||
符号作为连接符,而SQL
Server的连接符是加号:+
Oracle查询如下所示:
Select
‘Name’
||
‘Last
Name’
From
tableName
对应的SQL
Server查询如下所示:
Select
‘Name’
+
‘Last
Name’
数字取舍
Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。
在SQL
Server下可以用Round或者Floor
以下是Oracle查询:
SELECT
TRUNC(1579,1)
"Truncate"
FROM
DUAL;
下面是同类查询的SQL
Server版本:
SELECT
ROUND(1579,
0)
rounded
,
ROUND(1579,
0,1)
truncated
SELECT
FLOOR(ROUND(1579,
0)),
FLOOR(ROUND(1579,
0,1)
)
在把Oracle查询转换为SQL
Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL
Server的语言引擎,而Oracle的语言引擎却是PLSQL这两种查询语言都对
ANSI
SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL
Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL
Server的要求是一样的。
SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUALDUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’
FROM
dual
而对等的SQL
Server查询则是下面这个样子:
SELECT
‘x’
连接
Oracle用||
符号作为连接符,而SQL
Server的连接符是加号:+
Oracle查询如下所示:
Select
‘Name’
||
‘Last
Name’
From
tableName
对应的SQL
Server查询如下所示:
Select
‘Name’
+
‘Last
Name’
OleDbConnection sqlcnn = new OleDbConnection(ConfigurationManagerConnectionStrings["yflyzpconn"]ConnectionString);
配置文件是对的吗,监视一下sqlcnn是否为空,
OracleConnection connection = new OracleConnection(connectionString)先改一下
查找,读写
查找;总得知道要改到是哪条,找到它,读出来,改写成你要到,再放回去。
如果你没有给条件,那只有全部读,判断(判断是否为0),是则读出来改写,再放回去。
你总有一样条件是要必须成立的,否则就没办法 *** 作
sql server 2000的unicode编码有特殊性,仅仅在rails中使用utf8编码,和把全部rails项目文件格式改成utf8之外,还是不够的。仅仅这样做,只是部分中文字符能够正确处理,而且存入sql server2000中的中文数据,也完全是乱码。正确的配置方法应该如下。
1 ms sql server2000中数据字段全部要选择成n打头的类型,比如ntext,nvarchar等。
2安装ADO Driver
安装one -click installer 来安装ruby 的话就已经安装了所有连接SQL Server使用的需求包但是,并没有安装ADO Driver
这样来安装它:
在Ruby目录下找到这个目录: \ruby\lib\ruby\site_ruby\18\DBD 例如:我的Ruby安装在D:\ruby中,所以是这个目录D:\ruby\lib\ruby\site_ruby\18\DBD 在该目录中创建一个ADO文件夹 下载Ruby-DBI,将lib/dbd_ado/ADOrb文件拷贝到X:/ruby/lib/ruby/site_ruby/18/DBD/ADO/ADOrb
3 配置databaseyml:Java代码
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here
4在environmentrb添加下面代码
require 'win32ole'
WIN32OLEcodepage = WIN32OLE::CP_UTF8
在这里稍微解释下第四部分的设置。sql server 2000中使用的unicode 并非是utf8,ado的默认链接编码都是当前系统设置的code pages相关的。
一般的windows设置都是非unicode的,比如简体中文windows系统下一般都是gb2312, 在rails中databaseyml设置encoding: utf8,对于sql server没有任何用处。
为了迫使sql server接受utf8数据,必须修改ado链接的code pages值为utf8,才能让ado部分代码在接受rails传入的utf8数据之后,不做任何额外的处理 否则的话,ado部分代码会根据当前系统的默认code pages值来处理这里字符数据。
于是在中文windows系统上,从utf8的rails项目中传入的数据,会被当作gb2312编码的数据来传递到sql server2000中,于是sql server2000中存入的数据会成为乱码,也有部分数据在处理过程中出错,导致sql 语句执行出错。比如常见的中文字符右边的单引号会不见的情况。
不设置 WIN32OLEcodepage = WIN32OLE::CP_UTF8,你的整个系统编码配置是这样的
rails(utf8)<-->ado(根据当前系统cp来取得编码,或是gb2312或是其他)<-->sql server 2000 (unicode)
整个系统编码不一至
WIN32OLEcodepage = WIN32OLE::CP_UTF8 这句代码就是为了更改cp值整个系统编码配置是这样的
rails(utf8)<-->ado(utf8)<-->sql server 2000 (unicode)
整个系统编码一至,整个系统中不会再出现任何乱码
注:以上转自:jack发表在javaeye网站上的文章,地址:>
以上就是关于asp向sql数据库如何修改同一字段某部分内容而不是改写全部的内容,包括:asp向sql数据库如何修改同一字段某部分内容而不是改写、oracle数据库,查询到的结果怎样修改、读取txt内容插入oracle数据库的一段代码改写,源码如下:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)