中易网

ASP+ACCESS转成ASP+SQL程序应如何修改

答案:6  悬赏:40  
解决时间 2021-01-08 17:21
ASP+ACCESS转成ASP+SQL程序应如何修改
最佳答案
需要注意这么几个地方,不知道能不能说全.
第一个,将access数据库导入到sql后,各个表的主键需要重新设置一下,因为导入的时候,主键会掉.然后,主键需要设置为自动加一.
第二个,将连接字符串换成sql数据库的连接方法,本人习惯使用这个方法(ConnectionString = "Driver={SQL SERVER};Server=" & Host & ";Database=" & DataBase & ";uid=" & UID & ";pwd=" & PassWord & ";")
CONST Host = "(local)"
CONST DataBase = "数据库名"
CONST UID= "sa"
CONST PassWord = ""
第三,将access转换成sql后,要注意(是/否)类型字段(access),到sql后变成bit类型,所以,程序里使用IsTrue=True/False的地方,注意到sql数据库要使用1/0

其他的如果有没有提到的地方,需要本人自己多注意了
全部回答
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;
二,转换的方法
1,打开”控制面板“下”管理工具“中的”数据库源“;
2,按”添加“添加一个新的数据源,在选择栏里选”Driver do microsoft Access(*.mdb)”,完成后将出现一个框,在”数据库源“里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。数据源在这里建好了,剩下转换了。
3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;
4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;
5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;
6,“目的”不需要修改,选择服务器(一般下为自己的本机"local",也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),"使用WINDOWS 身份验证"指用自己的系统管理员身份操作,"使用SQL身份操作验证"可以用于网站的操作,推荐用后者;
7,选上"使用SQL身份操作验证"后,填写你的用户名和密码,我自己选择的是系统默认号码"sa","****",数据库选择刚新建的"ABC",按"下一步";
8,这一步的两个单项选择,"从数据源复制表和视图"与"用一条查询指令指定要传输的数据",选择前者,按"下一步"继续;
9,这里将出现你自己ACCESS数据库的表,按"全选"后,下一步;
10,"DTS导入/导出向导",看"立即运行"被选中按"下一步",
11,按"完成"继续;
12,这个步骤你将看到你的数据被导入SQL2000里面,当出现"已经成功把XXX个表导入到数据库"的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.
三,数据修改
1,由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",
2,另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;
3,另外,要注意对时间函数的把握.ACCESS与SQL是有很多不同的.
直接把ACCESS数据库导入SQL数据库中,然后直接修改连接字符串内容:
<%
MM_conn_STRING_own = "Driver={SQL Server};server=IP;uid=user;pwd=password;database=database;"
Set db = Server.Createobject("ADODB.Connection")
db.open MM_conn_STRING_own
%>
这个必须得慢慢的从程序开如改,因为Access和SQL Server在有些SQL语句上是不一样的,但绝大多数还是可以拿来使用。
同时当你把Acess的数据库转化为SQL Server时有些数据类型会改变,同时以前的自动编码类型的数据必须得自己设定为ID种子,不然肯定出错。还是好改的,不过看你是匿名发的信息,分我们肯定是拿不到的。就说这些吧。
可能只有一点点不一样吧.至于怎么倒入就不说了.好象在ACCESS中可以实现自动+1.举例来说,原来的ID=6000,现在我添加一行,在ASP中不需要写ID=ID+1.但在与SQL连接的ASP需要写这样的语句,
还有时间问题,就是他们显示的格式不一样.这样原本在ACCESS中储存的格式直接倒入SQL中不一定正常显示.而且,当ASP连接SQL后,DATA()语句就要修改了.
是与否的问题.
就这些了。
连接肯定要改的.
除了以下几位朋友说的数据库连接串以外,数据库从ACCESS转到SQL还需要注意以下几点:
1、日期型数据的比较方式;
ACCESS 是用 ## 来将日期数据括起来的,如:#2006-01-01#
SQL SERVER 则用 '' 将日期数据括起来,如:'2006-01-01'
2、如楼上所说的(是/否)类型;
3、两种数据库中的函数有所不同,所以有用到ACCESS的内置函数的代码,需要注意一下,如:ACCESS里的Now(),在SQL SERVER里可以用 GetDate();
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
今天网上突然看到市场很多橡木家具是假的是不
谁有新妹第二季??
中国哪所高校校园最好
怎么把一大块冰变成一个个的圆球,有这种机器
如何管理好20人的公司
精度最高的家用小型铣床是哪款
有些话有些事只适合放在心里 是指什么
一般在装修说的封板是怎么施工的
74LS161芯片的介绍与作用
美天婚纱摄影地址在什么地方,我要处理点事
列宁格勒和斯大林格勒一样吗?
科雷嘉采用高强度钢为什么重量与逍客一样重
心心什么成语
用什么可以把毛衫上的果冻泥去掉
FC(红白机)炸弹人游戏如何输入密码?
推荐资讯
解一下这道题 谢谢 大学的 求b那个
球鞋泡和喷区别是什么....
求坡道定点停车的技巧!
请帮我先结账,因为我马上下班了的英文
iPhone逃避越狱检测。 除了xcon还有别的么
p丨αywith是什么意思
梦见庄里火烧山
“华胥境”一词的来历??
DNF男气功新生不死鸟武器用智力宝珠还是魔攻
壬辰日为壬骑龙背,亥时生,为龙归大海,主大
做强电好么?。。。
梦三国曹植对邓艾出什么装备
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?