仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 979|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之代码完成数据库转换[sql2000 VS DBF格局...

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。数据|数据库|转换这里,就SqlServer,DBF两种格局的转化成绩做个总结。

一:从dBase文件中,导进数据到SQL数据库中,很复杂,间接用上面的语句:

/*===================================================================*/
--假如承受数据导进的表已存在
insertinto表select*from
openrowset(MICROSOFT.JET.OLEDB.4.0
,dBase5.0;DATABASE=c:,select*from[test.dbf])

--假如导进数据并天生表
select*into表from
openrowset(MICROSOFT.JET.OLEDB.4.0
,dBase5.0;DATABASE=c:,select*from[test.dbf])

/*===================================================================*/
--假如从SQL数据库中,导出数据到dBase,假如dBase文件已存在,就能够复杂的用:
insertinto
openrowset(MICROSOFT.JET.OLEDB.4.0
,dBase5.0;DATABASE=c:,select*from[test.dbf])
select*from表


/*--申明:
DATABASE=c:c:是dbf文件的寄存目次
select*from[test.dbf]test.dbf是指dbf文件名
--*/



二假如dBase文件不存在,就必要用到上面的存储历程了.



/*--数据导出dBase

导出表中的数据到dBase,假如文件不存在,将主动创立文件
基于通用性思索,仅撑持导出尺度数据范例
--*/

/*--挪用示例

--导出dBase
p_exporttb@tbname=区域材料,@path=c:,@over=0
--*/
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_exporttb])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_exporttb]
GO

createprocp_exporttb
@tbnamesysname,--要导出的表名
@pathnvarchar(1000),--文件寄存目次
@fnamenvarchar(250)=,--文件名,默许为表名
@overbit=0--是不是掩盖已存在的文件,假如不掩盖,则间接追加
as
declare@errint,@srcnvarchar(255),@descnvarchar(255),@outint
declare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000)

--参数检测
ifisnull(@fname,)=set@fname=@tbname+.dbf

--反省文件是不是已存在
ifright(@path,1)set@path=@path+
createtable#tb(abit,bbit,cbit)
set@sql=@path+@fname
insertinto#tbexecmaster..xp_fileexist@sql
ifexists(select1from#tbwherea=1)
if@over=1
begin
set@sql=del+@sql
execmaster..xp_cmdshell@sql,no_output
end
else
set@over=0
else
set@over=1

--数据库创立语句
set@sql=@path+@fname
set@constr=Provider=Microsoft.Jet.OLEDB.4.0;ExtendedProperties="dBASE5.0;
+;HDR=NO;DATABASE=+@path+"

--毗连数据库
exec@err=sp_oacreateadodb.connection,@objout
if@err0gotolberr

exec@err=sp_oamethod@obj,open,null,@constr
if@err0gotolberr

--创立表的SQL
select@sql=,@fdlist=
select@fdlist=@fdlist+,+a.name
,@sql=@sql+,[+a.name+]
+casewhenb.namein(char,nchar,varchar,nvarchar)then
text(+cast(casewhena.length>250then250elsea.lengthendasvarchar)+)
whenb.namein(tynyint,int,bigint,tinyint)thenint
whenb.namein(smalldatetime,datetime)thendatetime
whenb.namein(money,smallmoney)thenmoney
elseb.nameend
FROMsyscolumnsaleftjoinsystypesbona.xtype=b.xusertype
whereb.namenotin(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp)
andobject_id(@tbname)=id
select@sql=createtable[+@fname
+](+substring(@sql,2,8000)+)
,@fdlist=substring(@fdlist,2,8000)

if@over=1
begin
exec@err=sp_oamethod@obj,execute,@outout,@sql
if@err0gotolberr
end

exec@err=sp_oadestroy@obj

set@sql=openrowset(MICROSOFT.JET.OLEDB.4.0,dBase5.0;DATABASE=
+@path+,select*from[+@fname+])

--导进数据
exec(insertinto+@sql+(+@fdlist+)select+@fdlist+from+@tbname)

return

lberr:
execsp_oageterrorinfo0,@srcout,@descout
lbexit:
selectcast(@errasvarbinary(4))as毛病号
,@srcas毛病源,@descas毛病形貌
select@sql,@constr,@fdlist

go
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。
小女巫 该用户已被删除
沙发
发表于 2015-1-19 18:59:35 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
深爱那片海 该用户已被删除
板凳
发表于 2015-1-28 09:33:47 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
因胸联盟 该用户已被删除
地板
发表于 2015-2-5 17:05:17 | 只看该作者
我个人认为就是孜孜不懈的学习
分手快乐 该用户已被删除
5#
发表于 2015-2-13 00:20:28 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
莫相离 该用户已被删除
6#
发表于 2015-3-3 11:47:40 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
金色的骷髅 该用户已被删除
7#
发表于 2015-3-11 10:50:06 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
只想知道 该用户已被删除
8#
发表于 2015-3-18 07:05:37 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
逍遥一派 该用户已被删除
9#
 楼主| 发表于 2015-3-25 12:56:52 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 23:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表