asp向sql数据库如何修改同一字段某部分内容而不是改写

asp向sql数据库如何修改同一字段某部分内容而不是改写,第1张

如果已经用的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数据库的一段代码改写,源码如下:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9320326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存