首页> 搜索结果页
"access数据库和vfp" 检索
共 7 条结果
MySqI——常用语法技巧(刷文虽然枯燥,但受益匪浅 )
刷文虽然枯燥,但可能受益匪浅 ,开始吧,朋友。SQL分类Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句: 1、说明:创建数据库 CREATEDATABASE database-name 2、说明:删除数据库 dropdatabase dbname 3、说明:备份sql server --- 创建 备份数据的 device USEmaster EXECsp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始 备份 BACKUPDATABASE pubs TO testBack 4、说明:创建新表 createtable tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname 6、说明:增加一个列 Altertable tabname add column col type注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:dropindex idxname注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句选择:select* from table1 where 范围插入:insert into table1(field1,field2)s(1,2)删除:delete from table1 where 范围更新:update table1 set field1=1 where 范围查找:select * from table1 where field1 like ’%1%’---like的语法很精妙,查资料!排序:select* from table1 order by field1,field2 [desc]总数:selectcount * as totalcount from table1求和:selectsum(field1) as sum from table1平均:selectavg(field1) as avg from table1最大:selectmax(field1) as max from table1最小:selectmin(field1) as min from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL:select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。导出TXT 导出到TXT文本,用逗号分开: exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'不错的sql语句 不错的sql语句 1、说明:复制表(只复制结构,源表名:a 新表名:b)(Access可用)法一:select* into b from a where 11法二:selecttop 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b)(Access可用) insertinto b(a, b, c) select d,e,f from b; 3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insertinto b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in'"&Server.MapPath(".")&"data.mdb" &"'where.. 4、说明:子查询(表名1:a 表名2:b) selecta,b,c from a where a IN (select d from b ) 或者:select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 selecta.title,a.username,b.adddate from table a,(select max(adddate) adddate fromtable where table.title=a.title) b 6、说明:外连接查询(表名1:a 表名2:b) selecta.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、说明:在线视图查询(表名1:a ) select *from (SELECT a,b,c FROM a) T where t.a > 1; 8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select *from table1 where time between time1 and time2 selecta,b,c, from table1 where a not between 数值1and 数值2 9、说明:in 的使用方法 select *from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 deletefrom table1 where not exists ( select * from table2 wheretable1.field1=table2.field1 ) 11、说明:四表联查问题: select *from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join don a.a=d.d where ..... 12、说明:日程安排提前五分钟提醒 SQL:select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 13、说明:一条sql 语句搞定数据库分页 selecttop 10 b.* from (select top 20 主键字段,排序字段 from 表名order by 排序字段 desc) a,表名 b where b.主键字段= a.主键字段 order by a.排序字段 14、说明:前10条记录 selecttop 10 * form table1 where 范围 15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) selecta,b,c from tablename ta where a=(select max(a) from tablename tb wheretb.b=ta.b) 16、说明:包括所有在 TableA 中但不在TableB和TableC 中的行并消除所有重复行而派生出一个结果表 (select afrom tableA ) except (select a from tableB) except (select a from tableC) 17、说明:随机取出10条数据 selecttop 10 * from tablename order by newid() 18、说明:随机选择记录 selectnewid() 19、说明:删除重复记录 Deletefrom tablename where id not in (select max(id) from tablename group bycol1,col2,...) 20、说明:列出数据库里所有的表名 selectname from sysobjects where type='U' 21、说明:列出表里的所有的 selectname from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 selecttype,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C'then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROMtablename group by type显示结果: typevender pcs电脑 A 1电脑A 1光盘 B 2光盘A 2手机 B 3手机C 3 23、说明:初始化表table1 TRUNCATETABLE table1 24、说明:选择从10到15的记录 selecttop 5 * from (select top 15 * from table order by id asc) table_别名 order by id descsql技巧 sql技巧 如何删除一个表中重复的记录? create table a_dist(id int,namevarchar(20)) insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') exec up_distinct 'a_dist','id' select * from a_dist create procedure up_distinct(@t_namevarchar(30),@f_key varchar(30)) --f_key表示是分组字段﹐即主键字段 as begin declare @max integer,@id varchar(30) ,@sqlvarchar(7999) ,@type integer select @sql = 'declare cur_rows cursor forselect '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' havingcount(*) > 1' exec(@sql) open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max select @type = xtype from syscolumns whereid=object_id(@t_name) and name=@f_key if @type=56 select @sql = 'delete from '+@t_name+'where ' + @f_key+' = '+ @id if @type=167 select @sql = 'delete from '+@t_name+'where ' + @f_key+' = '+''''+ @id +'''' exec(@sql) fetch cur_rows into @id,@max end close cur_rows deallocate cur_rows set rowcount 0 end select * from systypes select * from syscolumns where id =object_id('a_dist') 查询数据的最大排序问题(只能用一条语句写) CREATE TABLE hard (qu char (11) ,co char(11) ,je numeric(3, 0)) insert into hard values ('A','1',3) insert into hard values ('A','2',4) insert into hard values ('A','4',2) insert into hard values ('A','6',9) insert into hard values ('B','1',4) insert into hard values ('B','2',5) insert into hard values ('B','3',6) insert into hard values ('C','3',4) insert into hard values ('C','6',7) insert into hard values ('C','2',3) 要求查询出来的结果如下: qu co je ----------- ----------- ----- A 6 9 A 2 4 B 3 6 B 2 5 C 6 7 C 3 4 就是要按qu分组,每组中取je最大的前2位!! 而且只能用一句sql语句!!! select * from hard a where je in (select top 2 je from hard b wherea.qu=b.qu order by je) 求删除重复记录的sql语句? 怎样把具有相同字段的纪录删除,只留下一条。 例如,表test里有id,name字段 如果有name相同的记录只留下一条,其余的删除。 name的内容不定,相同的记录数不定。 有没有这样的sql语句? ============================== A:一个完整的解决方案: 将重复的记录记入temp1表: select [标志字段id],count(*) into temp1 from [表名] group by [标志字段id] having count(*)>1 2、将不重复的记录记入temp1表: insert temp1 select [标志字段id],count(*) from [表名] group by [标志字段id] having count(*)=1 3、作一个包含所有不重复记录的表: select * into temp2 from [表名] where 标志字段id in(select 标志字段id from temp1) 4、删除重复表: delete [表名] 5、恢复表: insert [表名] select * from temp2 6、删除临时表: drop table temp1 drop table temp2 ================================ B: create table a_dist(id int,namevarchar(20)) insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') insert into a_dist values(1,'abc') exec up_distinct 'a_dist','id' select * from a_dist create procedure up_distinct(@t_namevarchar(30),@f_key varchar(30)) --f_key表示是分组字段﹐即主键字段 as begin declare @max integer,@id varchar(30) ,@sqlvarchar(7999) ,@type integer select @sql = 'declare cur_rows cursor forselect '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' havingcount(*) > 1' exec(@sql) open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max select @type = xtype from syscolumns whereid=object_id(@t_name) and name=@f_key if @type=56 select @sql = 'delete from '+@t_name+'where ' + @f_key+' = '+ @id if @type=167 select @sql = 'delete from '+@t_name+'where ' + @f_key+' = '+''''+ @id +'''' exec(@sql) fetch cur_rows into @id,@max end close cur_rows deallocate cur_rows set rowcount 0 end select * from systypes select * from syscolumns where id =object_id('a_dist') 行列转换--普通 假设有张学生成绩表(CJ)如下 Name Subject Result 张三语文 80 张三数学 90 张三物理 85 李四语文 85 李四数学 92 李四物理 82 想变成 姓名语文数学物理 张三 80 90 85 李四 85 92 82 declare @sql varchar(4000) set @sql = 'select Name' select @sql = @sql + ',sum(case Subjectwhen '''+Subject+''' then Result end) ['+Subject+']' from (select distinct Subject from CJ) as a select @sql = @sql+' from test group byname' exec(@sql) 行列转换--合并 有表A, id pid 1 1 1 2 1 3 2 1 2 2 3 1 如何化成表B: id pid 1 1,2,3 2 1,2 3 1 创建一个合并的函数 create function fmerg(@id int) returns varchar(8000) as begin declare @str varchar(8000) set @str='' select @str=@str+','+cast(pid as varchar)from 表A whereid=@id set @str=right(@str,len(@str)-1) return(@str) End go --调用自定义函数得到结果 select distinct id,dbo.fmerg(id) from 表A 如何取得一个数据表的所有列名 方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。 SQL语句如下: declare @objid int,@objname char(40) set @objname = 'tablename' select @objid = id from sysobjects where id= object_id(@objname) select 'Column_name' = name from syscolumnswhere id = @objid order by colid 或 SELECT * FROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME ='users' 通过SQL语句来更改用户的密码 修改别人的,需要sysadmin role EXEC sp_password NULL, 'newpassword','User' 如果帐号为SA执行EXEC sp_password NULL,'newpassword', sa 怎么判断出一个表的哪些字段不允许为空? select COLUMN_NAME fromINFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO' and TABLE_NAME=tablename 如何在数据库里找到含有相同字段的表? a. 查已知列名的情况 SELECT b.name as TableName,a.name as columnname From syscolumns a INNER JOIN sysobjects b ON a.id=b.id AND b.type='U' AND a.name='你的字段名字' 未知列名查所有在不同表出现过的列名 Select o.name As tablename,s1.name Ascolumnname From syscolumns s1, sysobjects o Where s1.id = o.id And o.type = 'U' And Exists ( Select 1 From syscolumns s2 Where s1.name = s2.name And s1.ids2.id ) 查询第xxx行数据 假设id是主键: select * from (select top xxx * fromyourtable) aa where not exists(select 1 from (select top xxx-1 * fromyourtable) bb where aa.id=bb.id) 如果使用游标也是可以的 fetch absolute [number] from [cursor_name] 行数为绝对行数 SQLServer日期计算 a. 一个月的第一天 SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()), 0) b. 本周的星期一 SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()), 0) c. 一年的第一天 SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()), 0) d. 季度的第一天 SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()), 0) e. 上个月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()), 0)) f. 去年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()), 0)) g. 本月的最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1,0)) h. 本月的第一个星期一 select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate()) ), 0) i. 本年的最后一天 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1, 0))。 获取表结构[把 'sysobjects' 替换成 'tablename' 即可] SELECT CASE IsNull(I.name, '') When '' Then '' Else '*' End as IsPK, Object_Name(A.id) as t_name, A.name as c_name, IsNull(SubString(M.text, 1, 254), '') aspbc_init, T.name as F_DataType, CASE IsNull(TYPEPROPERTY(T.name, 'Scale'),'') WHEN '' Then Cast(A.prec as varchar) ELSE Cast(A.prec as varchar) + ',' +Cast(A.scale as varchar) END as F_Scale, A.isnullable as F_isNullAble FROM Syscolumns as A JOIN Systypes as T ON (A.xType = T.xUserType AND A.Id =Object_id('sysobjects') ) LEFT JOIN ( SysIndexes as I JOIN Syscolumns as A1 ON ( I.id = A1.id and A1.id =object_id('sysobjects') and (I.status & 0x800) = 0x800 AND A1.colid0 then '√' else '' end) N'主键', b.name N'类型', a.length N'占用字节数', COLUMNPROPERTY(a.id,a.name,'PRECISION') asN'长度', isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0)as N'小数位数', (case when a.isnullable=1 then '√'else '' end) N'允许空', isnull(e.text,'') N'默认值', isnull(g.[value],'') AS N'字段说明' FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' andd.name'dtproperties' left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id AND a.colid = g.smallid order by object_name(a.id),a.colorder 快速获取表test的记录总数[对大容量表非常有效] 快速获取表test的记录总数: select rows from sysindexes where id =object_id('test') and indid in (0,1) update 2 set KHXH=(ID+1)\2 2行递增编号 update [23] set id1 = 'No.'+right('00000000'+id,6)where id not like 'No%' //递增 update [23] set id1='No.'+right('00000000'+replace(id1,'No.',''),6) //补位递增 delete from [1] where (id%2)=1 奇数 替换表名字段 update [1] set domurl =replace(domurl,'Upload/Imgswf/','Upload/Photo/') where domurl like'%Upload/Imgswf/%' 截位 SELECT LEFT(表名, 5) 截位 SELECT LEFT(表名, 5) (MS SQL Server)SQL语句导入导出大全 导出到excel EXEC master..xp_cmdshell 'bcpSettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA"-U"sa" -P"'BULK INSERT 库名..表名 FROM 'c:\test.txt' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = ' ' ) dBase Iv文件 dBase IV文件 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'dBaseIV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]') dBase III文件 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'dBaseIII;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]') FoxPro 数据库 select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxProDriver;SourceType=DBF;SourceDB=c:\', 'select * from [aa.DBF]') 导入DBF文件 select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=e:\VFP98\data; SourceType=DBF', 'select * from customer where country !="USA"order by country') go 导出到DBF 如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 insert into openrowset('MSDASQL', 'Driver=Microsoft Visual FoxProDriver;SourceType=DBF;SourceDB=c:\', 'select * from [aa.DBF]') select * from 表 说明: SourceDB=c:\ 指定foxpro表所在的文件夹 aa.DBF 指定foxpro表的文件名. 导出到Access insert intoopenrowset('Microsoft.Jet.OLEDB.4.0', 'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表 导入Access insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 'x:\A.mdb';'admin';'',A表) 导入 xml 文件 DECLARE @idoc int DECLARE @doc varchar(1000) --sample XML document SET @doc =' Customer was very satisfied Important Happy Customer. 用bcp实现存储过程 -- Create an internal representation of theXML document. EXEC sp_xml_preparedocument @idoc OUTPUT,@doc -- Execute a SELECT statement using OPENXMLrowset provider. SELECT * FROM OPENXML (@idoc,'/root/Customer/Order', 1) WITH (oid char(5), amount float, comment ntext 'text()') EXEC sp_xml_removedocument @idoc 导整个数据库 用bcp实现的存储过程 /* 实现数据导入/导出的存储过程 根据不同的参数,可以实现导入/导出整个数据库/单个表 调用示例: --导出调用示例 ----导出单个表 exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1 ----导出整个数据库 exec file2table'zj','','','xzkh_sa','C:\docman',1 --导入调用示例 ----导入单个表 exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0 ----导入整个数据库 exec file2table'zj','','','xzkh_sa','C:\docman',0 */ if exists(select 1 from sysobjects wherename='File2Table' and objectproperty(id,'IsProcedure')=1) drop procedure File2Table go create procedure File2Table @servername varchar(200) --服务器名 ,@username varchar(200) --用户名,如果用NT验证方式,则为空'' ,@password varchar(200) --密码 ,@tbname varchar(500) --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表 ,@filename varchar(1000) --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt ,@isout bit --1为导出,0为导入 as declare @sql varchar(8000) if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表 begin set @sql='bcp '+@tbname +casewhen @isout=1 then ' out ' else ' in ' end +'"'+@filename+'" /w' +'/S '+@servername +case when isnull(@username,'')='' then '' else ' /U '+@username end +'/P '+isnull(@password,'') exec master..xp_cmdshell @sql end else begin --导出整个数据库,定义游标,取出所有的用户表 declare @m_tbname varchar(250) if right(@filename,1)'\' set@filename=@filename+'\' set @m_tbname='declare #tb cursor forselect name from '+@tbname+'..sysobjects where xtype=''U''' exec(@m_tbname) open #tb fetch next from #tb into @m_tbname while @@fetch_status=0 begin set @sql='bcp '+@tbname+'..'+@m_tbname +case when @isout=1 then ' out ' else ' in ' end +' "'+@filename+@m_tbname+'.txt " /w' +' /S '+@servername +case when isnull(@username,'')='' then '' else ' /U '+@username end +' /P '+isnull(@password,'') exec master..xp_cmdshell @sql fetch next from #tb into @m_tbname end close #tb deallocate #tb end go/**********************Excel导到Txt****************************************/ 想用 select * into opendatasource(...) fromopendatasource(...) 实现将一个Excel文件内容导入到一个文本文件 假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位) 且银行帐号导出到文本文件后分两部分,前8位和后8位分开。 如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2 然后就可以用下面的语句进行插入 注意文件名和目录根据你的实际情况进行修改. insert into opendatasource('MICROSOFT.JET.OLEDB.4.0' ,'Text;HDR=Yes;DATABASE=C:\' )...[aa#txt] --,aa#txt) --*/ select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) from opendatasource('MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls' --,Sheet1$) )...[Sheet1$] 如果你想直接插入并生成文本文件,就要用bcp declare @sql varchar(8000),@tbnamevarchar(50) --首先将excel表内容导入到一个全局临时表 select @tbname='[##temp'+cast(newid() asvarchar(40))+']' ,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) into '+@tbname+' from opendatasource(''MICROSOFT.JET.OLEDB.4.0'' ,''Excel5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'' )...[Sheet1$]' exec(@sql) --然后用bcp从全局临时表导出到文本文件 set @sql='bcp "'+@tbname+'" out"c:\aa.txt" /S"(local)" /P" /c' exec master..xp_cmdshell @sql --删除临时表 exec('drop table '+@tbname) /*--bcp-二进制文件的导入导出 支持image,text,ntext字段的导入/导出 image适合于二进制文件;text,ntext适合于文本数据文件 注意:导入时,将覆盖满足条件的所有行 导出时,将把所有满足条件的行也出到指定文件中 此存储过程仅用bcp实现 邹建2003.08-----------------*/ /*--调用示例 --数据导出 exec p_binaryIO 'zj','','','acc_演示数据..tb','img','c:\zj1.dat' --数据导出 exec p_binaryIO 'zj','','','acc_演示数据..tb','img','c:\zj1.dat','',0 --*/ if exists (select * from dbo.sysobjectswhere id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id,N'IsProcedure') = 1) drop procedure [dbo].[p_binaryIO] GO Create proc p_binaryIO @servename varchar (30),--服务器名称 @username varchar (30), --用户名 @password varchar (30), --密码 @tbname varchar (500), --数据库..表名 @fdname varchar (30), --字段名 @fname varchar (1000), --目录+文件名,处理过程中要使用/覆盖:@filename+.bak @tj varchar (1000)='', --处理条件.对于数据导入,如果条件中包含@fdname,请指定表名前缀 @isout bit=1 --1导出((默认),0导入 AS declare @fname_in varchar(1000) --bcp处理应答文件名 ,@fsize varchar(20) --要处理的文件的大小 ,@m_tbname varchar(50) --临时表名 ,@sql varchar(8000) --则取得导入文件的大小 if @isout=1 set @fsize='0' else begin create table #tb(可选名 varchar(20),大小 int ,创建日期 varchar(10),创建时间 varchar(20) ,上次写操作日期 varchar(10),上次写操作时间 varchar(20) ,上次访问日期 varchar(10),上次访问时间 varchar(20),特性 int) insert into #tb exec master..xp_getfiledetails @fname select @fsize=大小 from #tb drop table #tb if @fsize is null begin print '文件未找到' return end end --生成数据处理应答文件 set @m_tbname='[##temp'+cast(newid() asvarchar(40))+']' set @sql='select * into '+@m_tbname+' from( select null as 类型 union all select 0 as 前缀 union all select '+@fsize+' as 长度 union all select null as 结束 union all select null as 格式 ) a' exec(@sql) select @fname_in=@fname+'_temp' ,@sql='bcp "'+@m_tbname+'" out"'+@fname_in +'" /S"'+@servename +case when isnull(@username,'')='' then '' else '" /U"'+@username end +'"/P"'+isnull(@password,'')+'" /c' exec master..xp_cmdshell @sql --删除临时表 set @sql='drop table '+@m_tbname exec(@sql) if @isout=1 begin set @sql='bcp "select top 1'+@fdname+' from ' +@tbname+case isnull(@tj,'') when '' then '' else ' where '+@tj end +'" queryout "'+@fname +'" /S"'+@servename +case when isnull(@username,'')='' then '' else '" /U"'+@username end +'" /P"'+isnull(@password,'') +'" /i"'+@fname_in+'"' exec master..xp_cmdshell @sql end else begin --为数据导入准备临时表 set @sql='select top 0 '+@fdname+' into ' +@m_tbname+' from ' +@tbname exec(@sql) --将数据导入到临时表 set @sql='bcp "'+@m_tbname+'" in"'+@fname +'" /S"'+@servename +case when isnull(@username,'')='' then '' else '" /U"'+@username end +'" /P"'+isnull(@password,'') +'" /i"'+@fname_in+'"' exec master..xp_cmdshell @sql --将数据导入到正式表中 set @sql='update '+@tbname +'set '+@fdname+'=b.'+@fdname +'from '+@tbname+' a,' +@m_tbname+' b' +case isnull(@tj,'') when '' then '' else ' where '+@tj end exec(@sql) --删除数据处理临时表 set @sql='drop table '+@m_tbname end --删除数据处理应答文件 set @sql='del '+@fname_in exec master..xp_cmdshell @sql导入Excel 导入Excel SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extendedproperties=Excel 5.0')...xactions SELECT cast(cast(科目编号 as numeric(10,2)) asnvarchar(255))+' ' 转换后的别名 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.xls";User ID=Admin;Password=;Extendedproperties=Excel 5.0')...xactions select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel5.0;HDR=YES;DATABASE=c:\Book1.xls',Sheet1$) HDR=YES;Excel第一行当成标题行 HDR=NO;第一行不当成标题行 导入文本文件 EXEC master..xp_cmdshell 'bcp"dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword' 导出文本文件 EXEC master..xp_cmdshell 'bcp"dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword' 或 EXEC master..xp_cmdshell 'bcp "Select* from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa-Ppassword'
文章
SQL  ·  存储
2023-02-20
计算机应用基础——计算机软件(一)
本文转载:https://xiaochuhe.blog.csdn.net/article/details/122917727一、计算机系统基本组成:硬件和软件 (一 ) 计算机软件:能指挥计算机完成特定任务的、以电子格式存储的程序、数据和相关文档。 (二 ) 软件的功能都在硬件的支撑下实现,用硬件实现的功能可能由软件来部分实现。二、软件 (一 ) 定义( ISO ):包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作。 (二 ) 组成:程序 + (与程序相关的)数据和文档。 1. 文档:程序开发、维护和使用所涉及的资料,如设计报告、维护手册和用户使用指南等 。 2. 程序是软件的主体,单独的数据和文档一般不认为是软件。 (三 ) 特性: 1. 依附性:通常必须使用物理载体进行存储,依附于一定的硬件和软件环境运行 2. 不可见性:以二进位表示、无形的产品 3. 脆弱性:容易受到病毒入侵 4. 易复制性 5. 无磨损性 (四 ) 软件版权: 1. 定义:软件的作者享有拷贝、发布、修改等权利, 用户购买软件只有 使用权 2. 软件盗版 :未获得版权所有者许可就复制和散发商品软件的行为 3. 相关法律法规:知识产权保护法、著作权法、专利法、计算机软件保护条例…… (五 ) 软件分类: 1. 按应用角度分:系统软件和应用软件 (1) 系统软件: A. 定义:管理系统资源、提供常用基本操作的软件 B. 特点:交互性(与计算机硬件系统)、通用性 C. 组成: (a) 基本输入/输出系统(BIOS) ——最接近计算机硬件的系统软件 (b) 操作系统 i. DOS、Windows 95、Windows 98、 Windows Me 、 Windows NT 4.0 、 Windows 2000 、 Windows XP 、 Windows 2003 、 Windows Vista 、 Windows 7 ii. Unix :BSD、SRV4、 SCO UNIX 、 AIX 、 Solaris 、 HP-UX iii. Linux:Red Hat、SuSE 等 (c) 程序设计语言处理系统 ( 编译器 ): FORTRAN 、 BASIC 、 Visual Basic 、 Java 、 C 、 C++ 、 LISP 、 PROLOG 、 MATLAB 、 ALGOL 、 PASCAL 等 (d) 数据库管理系统( DBMS ) : FoxPro 、 Microsoft Access 、 VFP 、 SQL Server 、 Oracle 、 DB2 、 SYBASE 等 (e) 实用程序 :磁盘清理程序、磁盘碎片整理程序、杀毒软件、防火墙等。 (2) 应用软件: A. 定义:为用户完成某项 特定任务的软件 B. 按应用软件的开发方 式和适用范围,可分 为:通用应用软件、定制应用软件 (a) 通用应用软件: (b) 定制应用软件: i. 定义:按照不同领域用户的特定应用要求而专门设计开发的软件 ii. 举例:超市销售管理和市场预测系统、工厂的集成制造系统、大学教务 管理系统、医院门诊挂号系统、酒店客房管理系统、民航售票系统 (3) 系统软件和应用软件的关系: 应用软件以系统软件为基础 (如: Powerpoint 以 windows 为 基础; Powerpoint 调用 windows 的功能 ) 2. 按软件权益如何处置分为:商品软件、共享软件、自由软件 (1) 软件许可证 (License) :允许用户购买一份软件而同时安装在约定的若干台计算机上使用. (2) 自由软件 A. 代表:TCP/IP、Linux B. 允许用户随便拷贝、修改其源代码和销售 (六 ) 软件发展的历史: 1. 第一阶段:个体工作方式 2. 第二阶段:合作方式 (1) 标志:软件危机 (2) 软件危机产生原因:软件复杂程度提高、研制周期变长、正确性难以保证、可靠性问题 突出 (并非硬件软件不协调发展) 3. 第三阶段:软件工程(用 工程化 的方法组织软件的开发)三、操作系统 (一 ) 地位:计算机运行配置必不可少的 底层 系统软件 (二 ) 作用: 1. 管理分配系统中的各种软硬件资源 2. 为用户提供友善的人机界面 (1) 命令行界面 (2) 图形用户界面:采用图标(icon)来形 象地表示系统中的文件、程序和设备等 对象. 3. 为应用程序的开发和运行提供一个高效率 的平台( 开发和运行应用程序与运行的操作系统密切相关 ) (1) 裸机:只有硬件、没有软件的计算机。 (2) 虚计算机:操作系统屏蔽了大部分物理设备技术细节 (三 ) OS 启动 1. 加载过程:加电自检程序、自举装入程序、引导程序、操作系统 2. 特别注意: 安装了操作系统的计算机, 操作系统总是驻留在硬盘存储器上 (不是内存) (四 ) 五大模块 1. 处理器管理 (1) 主要目的:提高 CPU 使用效率 (2) 多任务处理:操作系统支持同时运行若干个程序(至少一个 CPU) A. 前台任务:活动窗口(能接受用户输入的窗口有且一个)所对应的任务 B. 后台任务:除前台任务外,所有其它任务均为后台任务 C. 使用“windows 任务管理器”可以了解每个任务的运行情况 (3) Windows 采用“并发多任务”技术 A. 定义: 前、后台任务都能分配到 CPU 的使用权 ,可以同时运行 B. 程序调度算法策略: 时间片轮转 C. 要求: 必须配有至少 1 个单核的 CPU D. 在单 CPU 环境下,多个程序在计算机中同时运行时,意味着它们宏观上同时运行, 微观上由 CPU 轮流执行 E. 任务数越多,CPU 响应越慢 2. 存储管理 (1) 功能:对内存空间的分配、回收、共享、保护和扩充等 (2) 虚拟存储器 A. Windows 中, 虚拟存储器由计算机中的物理内存和硬盘上的虚拟内存联合组成 。 B. 虚拟存储器大小受到外存空间及 CPU 地址表示范围的限制 C. 在 Windows 中,用户可设置硬盘逻辑盘上虚拟内存及其容量 D. 页面文件 (a) Windows XP 中: Pagefile.sys ,位于系统盘根目录下 (b) 调度算法: “最近最少使用”( LRU ) (3) “剪贴板” A. 定义:在内存中开辟的一块临时存储区 B. 作用:传递信息 C. 优点:信息可以被多次使用 3. 文件管理 (1) 文件 A. 文件名的一般形式为: 文件标识符 . 扩展(后缀)名 (a) 文件名字使用西文(或中文) 字符组成,不能使用某些特殊字符(如 ? * \ / < > : ” | 等) (b) Windows 中允许使用长文件名,文件名最长 255 个字符 (c) 英文字母的大、小写只在形式上加以区分,实际上不予区别 B. 属性: 系统文件(与操作系统有关) 、隐藏文件、存档文件、只读文件( Windows 允许一个文件兼有多种属性 ) (2) 文件夹 A. 属性:存档、只读、隐藏…… B. 根文件夹(根目录)和子文件夹,既可以存放文件,也可以存放文件夹 C. 不同文件夹中的文件允许同名 (3) 文件管理 A. Windows 中,利用“资源管理器”管理文件、文件夹 B. 正在打开、运行的应用程序无法删除 C. Windows 中, 物理硬盘能建立多个根目录,不同的根目录对应的是不同的逻辑分区 (根目录不可以删除) D. “回收站”的内容占用硬盘空间;软盘和优盘上被删除的文件或文件夹不可以用“回 收站”将其恢复 4. 设备管理 (1) 操作系统中的“设备管理”程序负责对系统中的各种输入输出设备进行统一管理,处理 用户(或应用程序)的输入 / 输出 (2) 设备驱动程序: A. 作用:将具体物理设备的性质和硬件操作的细节予以屏蔽(简便易用) B. 打印机驱动程序一般由操作系统自带,或由打印机厂商提供 C. 使用优盘一般不需专门安装相应的驱动程序 5. 作业管理 (五 ) 常用操作系统 1. Windows操作系统 (1) 特点: A. 单用户、 多任务 处理 B. 图形用户界面 GUI :采用图标来形象地表示系统中的文件、程序和设备等对象 。 C. 即插即用 :只有硬件可以即插即用、不必关掉主机电源即可插入、增加新硬件一般 不必安装驱动程序 D. 支持多种通信协议 E. 支持的内存容量大(如 Windows XP 可超过 1GB ) F. 有多个版本 (2) Windows2000 系列 Server 以上版本,适用于各种不同规模、不同用途的服务器(不是每 个版本都可作为 Server OS ) 2. UNIX 操作系统 (1) 美国 Bell 实验室开发的一种通用 多用户 交互式 分时 操作系统。 (2) 可移植性好——UNIX 系统 90 %以上的代码是用 C 语言编写的 (3) 服务器专用 操作系统, 也可以用于 PC 机 3. Linux 操作系统 (1) 奠基人:芬兰 赫尔辛基大学计算机系 学生 Linus Torvalds (2) 优势:在网络服务器方面(服务器专用操作系统) (3) Linux 系统是一种“自由软件”,其源代码向世人公开
文章
2022-05-15
例子
SQL Server中sqlserver,access,excel之间数据如何使用sql语句直接操作 所谓的数据传输,其实是指SQLServer访问Access、Excel间的数据。 为什么要考虑到这个问题呢? 由于历史的原因,客户以前的数据很多都是在存入在文本数据库中,如Acess、Excel、Foxpro。现在系统升级及数据库服务器如SQLServer、ORACLE后,经常需要访问文本数据库中的数据,所以就会产生这样的需求。前段时间出差的项目,就是面临这样的一个问题:SQLServer和VFP之间的数据交换。 要完成标题的需要,在SQLServer中是一件非常简单的事情。 通常的可以有3种方式:1、DTS工具 2、BCP 3、分布式查询 DTS就不需要说了,因为那是图形化操作界面,很容易上手。 这里主要讲下后面两们,分别以查、增、删、改作为简单的例子: 下面废话就不说了,直接以T-SQL的形式表现出来。用T-SQL说明这个是只在sql server中可以使用,比如说openrowset和opendatasource是sqlserver支持的函数。纯粹的accessi环境下是不支持的。 一、SQLServer和Access 1、查询Access中数据的方法: select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user' 或 select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=')serv_user 2、从SQLServer向Access写数据: insert into OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')select * from SQLServer表 或用BCP master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out  "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"' 上面的区别主要是:OpenRowSet需要mdb和表存在,BCP会在不存在的时候生成该mdb 3、从Access向SQLServer写数据:有了上面的基础,这个就很简单了。一定注意,这个是在sql server中输入的。 insert into SQLServer表 select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表') 如果是在access中操作的话,可以用以下的语句完成。当然,我没有写完整的语句,只是示例性的给出了如何从一个文件中读取数据。 SELECT   *   from   表名   in   'C:\db2.mdb'   select   *   from   [;database=C:\db2.mdb].tablename    或用BCP master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" in  "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"' 4、删除Access数据: delete from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')where lock=0 5、修改Access数据: update OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')set lock=1 SQLServer和Access大致就这么多。 二、SQLServer和Excel 1、向Excel查询 select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\book1.xls;','select * from [Sheet1$]') where c like '%f%'select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls',[sheet1$]) 1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错 2)[]和美圆$必须要,否则M$可不认这个账 2、修改Execl update OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=c:\book1.xls;','select * from [Sheet1$]')set a='erquan' where c like '%f%' 3、导入导出 insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=c:\book1.xls;','select * from [Sheet2$]')(id,name)select id,name from serv_user 或BCP master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out  "c:\book2.xls" -c -q -S"." -U"sa" -P"sa"' 从Excel向SQLServer导入: select * into serv_user_bak from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\book1.xls;','select * from [Sheet1$]') 如果表serv_user_bak不存在,则创建 有关BCP和分布式查询的详细解答,就查SQLServer自带的帮助吧。 SQLServer和txt文件、HTML文件、VFP文件的数据交换都显得非常容易了。。。。 三、Access和excel 在Access中读取excel SELECT * from [Excel 8.0;Database=C:\Test.xls].[Sheet1]   有了上面这个例子,如何制定一个excel就一目了然了。其他的我就不在这里累述了。    其实这些内容在帮助里都有,偶只不过是总结了一下,方便大家参考,呵呵~~ 以上内容都经过测试~~ 分类: sql 本文转自9pc9com博客,原文链接:   http://blog.51cto.com/215363/745021     如需转载请自行联系原作者
文章
SQL  ·  数据库  ·  关系型数据库  ·  Oracle
2017-11-01
技术实践的主流方向
   1、嵌入式开发 传统的arm linux开发、新兴的智能硬件、物联网等技术的发展,都让整个方向成为热门领域。   2、游戏开发 cocos2d-x、unity3d、html5,都可以用来开发游戏。   3、移动开发 当前移动开发领域主流的三大平台:   [1].iOS:开发语言为Objective-C/Swift,开发工具为Xcode,背后巨头为Apple公司。   [2].Android:开发语言为Java,开发工具为eclipse/Android Studio,背后巨头为Google公司。   [3].Windows Phone :首选开发语言为C#,开发工具为Visual Studio,背后巨头为Microsoft公司。   经过这几年的发展,移动开发领域又有了一些变化,正所谓唯一不变的就是变。   IOS开发出了新的编程语言swift,它比原先的Objective-C更加容易掌握,语法上类似于JavaScript。   Android开发由于使用了Java语言,使得很多原先熟悉Java的程序员很容易转到Android开发上面来。为此Oracle还向Google提起了诉讼,认为Google使用了Oracle的Java是侵权行为。未来Google是否会使用新的编程语言(比如:Go)来取代Java的位置呢?让我们共同期待。但是值得一提的是,Google在虚拟机层次上并没有使用jvm,而是自行实现了一套虚拟机dalvik。   Windows Phone的市场份额实在不容乐观,据说Android+IOS=96%以上的市场份额,所以Windows Phone暂时还没有像Android和IOS那样风靡全球。   最后提一下,最近在各大社区经常看到移动跨平台解决方案Xamarin的广告,其基本概念就是利用C#一门语言就可以开发Android、IOS、Windows Phone(本来就支持)等移动app,听起来很有吸引力,但是毕竟不是原生语言开发,是否成熟是个问题。而且还是收费的,在国内环境下很难有大批的开发者会使用这项技术。       4、应用开发 c++(vc++、qt)、java(javaee)、c#(asp.net/wpf)等等是目前就业人员最多的技术领域。   5、前端开发 html、css、javascript、jquery、bootstrap、extjs、angularjs、reactjs...,还有一堆库、框架等你去尝试。在这个强调用户体验的互联网时代,前端开发显得尤为重要。   6、数据库 oracle、sqlserver、mysql、nosql(mongodb、redis)是目前数据库领域的主流。 当前流行的主流数据库:1)Oracle 2)MS Sql Server 3)MySQL 4)DB2 5)SQLite   [1].Oracle由Oracle公司开发,是当前的大型数据库管理系统,公认为当前数据库领域第一王牌。   [2].MS-Sql Server 由Microsoft公司开发,成为当前使用最广泛的数据库管理系统,适合于大、中、小型项目的数据库管理系统。版本从2000、2005到2008再到2012,完全适合各类层次的用户和企业使用。由于其秉持了微软一贯的操作方便、界面友好等特点,使得其得到了大多数企业的肯定。尤其适合作为Windows平台的项目的系统数据库。   [3].MySQL 原来由SUN公司(发明了Java)以10亿美元收购,后Oracle公司以74亿美元收购SUN,自然投入了Oracle阵营。它最大的特点就是免费开源,但是被SUN收购后,变为了商业化数据库。但是其性能不是很好,而且稳定性不够,适合小型项目,尤其适合作为php的网站数据库管理系统。   [4].DB2由IBM公司开发,但是其受操作系统的制约,只能用于AIX操作系统,因此使用面不如上面3个数据库。   [5].其他还有SqLite(基于C语言开发的文件型数据库,用于手机等嵌入式开发)、VFP(Visual Fox Pro)、access(Office套件)等。       7、系统集成 这个领域会比较杂(运维、硬件、网络、服务器、存储),要熟悉各种公司的产品以及开源工具,具备二次开发的能力更好。   8、云计算、虚拟化、大数据 目前最热门的方向,机器学习、深度学习都属于大数据领域的范畴,知识的广度和深度要求都比较高。   像嵌入式跟大数据比较适合硕士以上学历从事,其它6个方向本科都可以。   嵌入式开发涉及到硬件、电路等相对专业的知识,有一定门槛。非计算机或电子专业的想从事这个方向的工作,需要去额外的学习很多底层的知识,而且这部分知识难度稍高,需要付出很大的精力才能胜任。   大数据(机器学习、深度学习)方向如果搞纯应用不用太高学历,但是如果要进阶的话则适合搞学术的人从事,因为机器学习等都涉及到大量的数学知识,难度较大。    援引: http://www.cnblogs.com/guwei4037/p/5600036.html墨匠
文章
机器学习/深度学习  ·  Java  ·  关系型数据库  ·  数据库  ·  Android开发  ·  Windows  ·  Oracle  ·  数据库管理  ·  iOS开发  ·  前端开发
2016-09-22
【转】力控的60个经典问题
1: 我已经安装加密锁了,为何安装运行包后运行工程还提示找不到加密锁?     这是因为安装运行包后,需要人工对软件进行注册。请打开运行包释放后所在文件夹,手工运行其中的“Registry”程序进行软件注册,这样加密锁就可以找到了。2:安装完运行包后如何卸载? 卸载运行包需要两个步骤:      1、手动删除运行包安装后生成文件夹及文件夹中的内容;      2、删除注册表       (1)Windows2000:进入windows安装系统盘――>WINNT文件夹――>打开regedit.exe文件――>使用查找功能搜索DaQing Sunway――>找到后删除该注册表信息。       (2)Windows98/XP:进入windows安装系统盘――>WINDOWS文件夹――>打开regedit.exe文件――>使用查找功能搜索DaQing Sunway――>找到后删除该注册表信息。  3:如何安装力控的驱动程序?手动添加新驱动怎么做?     力控软件安装光盘中提供了驱动安装程序。要是手动添加驱动的话,需要把驱动文件夹(内有至少两个.dll文件和一个.txt文件)拷贝到力控安装根目录下的IO Servers文件夹下。   4:怎样添加新的子图精灵?     子图安装方法:关闭力控运行程序,进入开发系统。打开任意一幅画面,选择特殊功能下的安装子图精灵,会弹出对话框,这时选择需要安装的.dll文件,即去下载控件的存放位置寻找。单击打开按钮, 填写子图的属性,确定后便可把控件加入到子图精灵中。  5:力控提供的加密锁需要安装驱动程序吗?需要话如何安装?    力控提供两种加密锁:一种是并口锁,一种是USB加密锁。       1)使用并口锁的时候,把加密锁直接插到计算机的并口上即可。注意:不要带电插拔,这样容易损坏加密锁。当插入加密锁后,如果力控软件找不到加密锁,请检查计算机BISO中打印机的设置方式,需要设置成ECP的方式。      2)使用USB加密锁的时候,需要安装驱动,请点击力控光盘中的“加密锁驱动安装”进行安装。驱动安装完毕后再把加密锁插入计算机的USB口中。 6:不小心在工程管理器中将工程给删除了,还能找到并恢复工程吗?      可以,工程管理器只是对开发人员提供的多个工程列表管理的窗口,从这里删除只是管理器的列表中不在显示该工程。实际上工程还保存在原路径下,只需使用“新增应用”就可以找到你的工程并重新增加进列表。7:力控支持数组吗?     支持,可以使用间接变量,它是一个一维数组,下界为0,上界10000。   8:给每个数组元素赋值后,发现最终所有元素显示的是最后一个赋值结果?       这是因为在赋值前没有对数组元素做对其指向的变量进行指定。数组元素指定形式:IV[i] = &VAR    //表示间接变量IV的第i个元素指向变量VAR。IV为间接变量,VAR为普通变量。   i---为数值常量,或数值表达式。   IV[i]---表示IV的第i个元素。“&”为地址符。“&”也可以写作“@”;   例如:错误的做法:不对数组TEMP元素指定变量,对TEMP[1]、TEMP[2]直接赋值为12 和36,即TEMP[1]=12;   TEMP[2]=36;最终结果造成TEMP[1]、TEMP[2]值都是36;       正确的做法:先进行元素与变量指定TEMP[1]= &coma1、TEMP[2]= &coma2,然后分别对变量coma1和coma2进行赋值:coma1=12; coma2=36;这样元素才能获得正确结果。9:为何工程画面切换时有些窗口打不开,并提示“打开文档失败。”的错误?     这是因为3.6版本的运行系统VIEW不支持窗口名称中带有(输入法为英文状态)“#”和(输入法为中文状态)“(”与“)”字符的名称。如窗口名称为:“1#车间工艺”,当切换到该画面时会出现提到的现象。为此建立窗口时请不要使用“#”、“(”,“)”等字符。如果是输入法为中文状态的“#”可以使用,但不建议大家使用该符号。对于2.6版本下运行正常需要升级到3.6的工程要注意将带有“#”和“(”,“)”的窗口名称和动画连接进行修改。 10:将系统的热启动键禁止,防止运行人员非法操作关机,能实现吗?    可以,在“配置”——“运行系统参数”——“系统设置”中将“禁止Ctrl^Alt^Del”即即可。 但需注意对于某些操作系统安装后可能不能使用。     11:多个显示器同时分块监控一个大型的工艺流程画面,力控支持这种大画面漫游吗?    支持,窗口尺寸可以人工修改,在不使用带滚动条的窗口情况下可以做到(宽度x高度)在10308x10536像素以内。12: 力控支持Flash动画吗?     支持。可以使用“内部控件——浏览器”在“地址(URL)关联点”中添加数据库变量(可以使用右侧的按钮选择),选择变量及其字符型参数DESC,运行时对该变量进行赋值:将Flash动画文件的绝对路径赋给数据库变量的DESC参数(字符型),文件名称必须带.swf的后缀。运行后即可在力控的画面中播放Flash动画。通过修改变量赋值可以选择播放不同的文件,也可以在同一幅画面中播放多个Flash动画文件。 13:力控的文本做模拟量的输入和输出连接后,发现模拟量变成整型了,没有小数部分,怎么处理呀?     力控的画面VIEW与实时数据库DB是两个独立的可执行文件,虽然在数据库中模拟量默认3位小数(小数位数可以修改),但VIEW中文本需要人工指定小数点位数。如文本为####.##表示有两位小数显示。14:力控的数据库与数据库之间如何通讯?    可以使用远程数据源的方式,建立网络连接实现,该方式仅支持网络TCP/IP方式;也可以使用力控数据库间专有的Portserver协议,该方式支持TCP/IP,串口,拨号,GPRS等多种物理方式的链接,轻松组件分布式实时数据库网络。  15:为何运行后在打开数据库DB时发现有“历史点不存在XXXX”( XXXX为数据库变量)的信息哪?    这有两种可能:       1、这里指出的变量没有在组态中进行历史参数的保存设置。即根本不存在历史数据;       2、使用历史曲线或报表等工具对该变量进行过历史数据查询,但所查询的时段没有历史数据造成,即通讯故障,或关机等造成历史数据中断。16:电力采集模块是标准的MODBUS协议,读取了30多个模拟量参数,为何上来一部分数据,还有一部分变量在数据库DB中读不到哪?     可能是该仪表的缓冲区太小,驱动中的报文长度过大,造成数据采集不正常。可以在定义标准MODBUS设备驱动时,在设备配置的第三步中,将“包的最大长度” (默认64)改小。在PLC中Modicon(莫迪康)的Modbus驱动中,包长设置在“高级”按钮。17:  在使用MODBUS驱动时,硬件手册中读取模拟量地址为40001,我在I/O 连接项中选择4号命令并输入地址40001,为何读不到数据哪?     这是对MODBUS协议理解的错误!这里40001中的4是指4号命令,它是协议规定的功能码,0001才是地址。所以选择4号命令后在地址栏中只需要输入1即可。 18: 力控支持SIEMENS的S7-200通讯吗?怎样连接?     支持,力控可以通过PPI、MPI、自由口等方式与S7-200通讯。MPI方式上位机需要增加一块CP5611或者MPI电缆,PLC硬件需要增加EM277模块,安装PRODAVE S7,运行PG/PC-interface parameterisation,对通信参数进行配置。而PPI方式不需要以上设备,只需要一条PPI电缆。相关连接方式请参考相应的驱动帮助。   19:控与OMRON以HOSTLINK方式通讯时为什么有时只能采集而不能下送?      HOSTLINK 协议规定OMRON的PLC处在运行的时候,数据只能采集,所以运行时不能写。在Run(运行)状态的模式下只能进行读操作,进行数据监视。要想对PLC进行读写控制就要将PLC上的开关拨到Monitor(监控)状态。 20:使用多个厂家的串口设备,但力控只允许同一个厂家的设备使用同一个串口,计算机上只有两个串口怎么办?     这种情况下,有两种方式:1、使用PCI或ISA的串口扩展卡(如研华或MOXA等公司),增加计算机的串口数量。优缺点是容易实现节省时间,但布线要多使用些通讯线。2、 力控也可以根据的需要将指定的几个驱动合并到一个物理层上使用,但需要收取开发费用,优缺点是布线节省时间和费用。   21:使用OPC时输入了远程计算机IP或计算机名称后,为何找不到SERVER?      要求远程SERVER计算机和力控所在的客户端计算机必须使用相同的用户名和口令进行登 陆,如果远程SERVER计算机隶属于WINDOEWS网络的某个“域”中,要求客户端计算机也 必须工作在该网络相同的“域”中。OPC SERVER应该先运行起来,在CLIENT端才能看到点的树型结构表。  22:当使用DDE方式通讯时,为什么总是提示数据连接方面的问题,或通讯 中断无法交换数据?      这是因为第三方服务程序在反应速度上无法实现与DB同步,DDE通讯分为同步和异步两种方式,连接分冷连接、温连接和热连接。根据不同的DDE Server,请选用不同的连接方式。建议使用异步连接通讯方式。在数据库组态DbManager“工程”——“数据库数”中的配置里,选择使用“异步”的DDE通讯方式”。  23: 力控如何用GPRS进行采集与通讯?      GPRS通讯有两种方式:一种是采用GPRS MODEM,使用拨号属性建立两台计算机之间的类 似无线以太网的通讯方式,这种方式只适合现场有计算机的场合;对于现场没有计算机 的设备,要想通过GPRS网络实现远程采集,就需要使用GPRS DTU,远程计算机通过广域网接收指定DTU连接的终端设备。这种方式现场不需要计算机,它很适合距离远且地理位置分散的场合。 24: 域名捆绑能实现数据采集吗?      可以使用域名捆绑,对RS232/485设备的GPRS无线数据采集,DTU中需要使用真IP,也       可以使用域名捆绑,这样DTU才能识别哪台计算机对它具有访问权。  25:可以在运行时动态修改报警上下限吗?能自动存储修改后的值做为下次运行时的报警条件使用吗?      可以,只需在画面上对相关的参数LL、LO、HI和HH进行文本的输入输出连接组态,运行 时调用修改变量的上述相关参数即可;如果想保存做为下次启动使用,请在数据库组态 中“历史参数”选项页中,对相应的变量和参数选中“退出时保存实时值做为下次启动初值”即可。   26:力控可以检测设备通讯故障并报警吗?      可以,力控的实时数据库对所连接的各种设备都具备通讯的实时监测功能。使用数据库 参数的I/O设备状态即可,当通讯正常时该参数值为0,故障时参数值为1;同时数据库提供很多的状态参数; 27:如何将含有字符、整型数据的Access数据库中的数据表调到力控中显示并打印?       需要在力控中使用数据表绑定,首先将力控的数据库变量和Access的数据表中字段进行捆绑,其次使用SQL函数做数据源连接和数据记录的选取,最后使用windows/表格控件,表格编辑成和你的Access数据库中的表一样的格式(字段、数据格式都要一致),通过函数SQLDi-splayToGrid()将查询的数据显示到表格中。用print("要打印的窗口")就可以打印你要的表格了。 28:能将报表保存吗,就像保存EXCEL表单一样?       可以,在万能报表的“工具条”下拉框中选择“运行时有工具条(无级别)”。运行时只需双击报表即可弹出浮动的工具条,使用“保存文件”工具,可生成*.rpt的报表。 该格式的报表使用工具条中的“打开文件”工具可以查看原有的报表。  29:为何只能查看10天的历史数据,以前数据都没有了?      力控的实时数据库默认保存10天的历史数据,所以会出现上述问题,只需在力控实时数 据库工程管理器DBManager“工程”——“数据库参数”——“历史数据保存时间”中将保存时间的设置按需求进行修改即可。 30:力控的历史数据能使用EXCEL或关系数据库查看吗?      可以,使用力控的“内部控件”——“ODBC转储”工具可以将历史数据转存到EXCEL中查 看,或使用组件ODBCGATE工具转存到关系数据库中。 31:用VC自己编写了专用控制算法和仿真模型,想用力控做画面和数据采集,用程序做运算并返回信息给力控,可以吗?       可以,力控的DBCom是个标准的OLE控件可以在本地和远程计算机上双向的与VC++、VB、VFP、DELPHI、FrontPage、C++ Build等编写的程序进行实时或历史的数据交换,也支持数据变化通知。    32:力控可以和Infoplus等大型实时数据库连接吗?      力控是标准的OPC Server和DDE Server,可以使用OPC和DDE向实时数据库提供数据,对于Infoplus也可以使用专用的CMIO接口。  33:力控能结合GIS地理信息系统吗?  可以,使用DBCom控件向GIS提供报警和实时数据信息;如果是WebGIS可以调用力控的 drawcom控件,浏览力控的网络发布画面,力控也可以使用StartAPP函数启动WebGIS 的画面。 34:如何读写*.txt的纯文本文件?      可以使用FileRead和FileWrite等相关函数进行读写操作。 35:以plc为例如何能让数据采集刷新速度提高?       PLC的驱动程序因数据量大,采集存在数据打包的问题,力控将不同寄存器类型的数据打成一类数据包,每种类型又根据寄存器进行连续地址分段打包的方式进行采集。如编程结果将造成通讯数据包数量很多,最终造成刷新数据慢。最好的方式是将PLC程序中需要读写的寄存器地址尽量连续使用以减少数据包的数量。   36:如何查看plc或其它设备是否通讯上了哪?     力控运行后打开windows状态栏中的pLerine I/O server.exe文件,查看其中的状态信息。主要有Request times、Answer times、Average collecting cycle等信息;也可以看通讯灯的状态,绿色通讯正常,红色通讯故障。但不是所有的设备都能这样查看。 37: 定义I/O设备时,“动态优化”什么意思?     只采集当前活动点和需要保存历史数据的点,其余的点不采集。这样可以提高采集效率,但这些数据需要保证在同一个数据包中,这样才能提高采集效率。否则,动态优化没有 意义。    38:电话拨号采集设备,不希望一运行工程就自动拨号,希望人工控制拨号和挂断, 如何做?       在定义I/O设备时选择“初始禁止”功能,在画面上使用函数“DeviceOpen()”和“DeviceClose”函数进行设备的动态打开和关闭控制。也可以使用条件动作做定时和轮巡拨号采集。 39: Web发布后,HMI画面上数据都正常,但在IE上一部分数据显示为0,为何?     力控不支持中间变量的发布。在IE浏览时,如果有画面显示的是中间变量就会出现上述问题。 在使用网络版的软件时要注意画面显示的实时数据必须用数据库变量。  40:对生产进行计数(累加1),为何发布后在IE上显示的数据比HMI上的多一倍?      力控发布时将脚本程序与画面一并发布,IE客户端下载了画面和脚本程序,造成两地都在执行脚本程序计算,出现IE端计算结果与HMI结果不一致。请使用IsWeb() 函数将计算的脚本程序屏蔽,禁止程序在IE端运行即可。 41:使用电话拨号上网连接的计算机,能实现WEB发布吗?      可以。“WEB服务器配置”参数中的服务器IP地址使用拨号后获得的临时IP地址即可。但每次上网发布前都需要修改该参数,并重新发布信息,远程的IE端也要使用更新的IP地址来访问。  42:做了WEB发布配置和工程发布,为何在IE中看不到画面?      首先查看你的Web Server服务程序是否运行了,该程序中的指定端口号与你的设置是否一 致;IE的安全属性是否按照说明进行修改;是否关闭了网路防火墙或如WINDOWS XP系统sP2自带的防火墙;工程路径和IP地址是否正确;如果一切正常,请使用其它计算机或其它浏览器查看一下,也可能是你的IE浏览器已经损坏。 43: 为何我发布的工程画面不能切换,在VIEW中可以?     这是因为你在发布时只发布了当前打开的窗口或初始窗口。因为其它窗口没有进行发布,所以无法进行切换。回到开发系统进行如下操作“文件——全部关闭——全部发布到Web” 选择所有窗口进行发布。这样重新运行工程并刷新IE后即可完成切换浏览。 44: 用IE浏览正常,但我关闭以后下次浏览发现数据不能刷新?      检查IE的常规属性中是否没有清除历史记录。将IE历史记录项改为0天,并清除原有的历史画面,同时在工程文件夹中将原有的HTTP文件夹内容删除后重新将工程发布后即可。     45:在用力控进行Web发布时,提示端口地址80被占用。如何解决此类问题?      力控WebServer默认端口地址为80,如果计算机该端口被系统IIS或其它软件占用,可以在 WEB服务器配置中将端口地址改为其它地址即可,修改后需要再次运行才能生效。    46: 力控用IE浏览时如何输入地址,发布时能输入计算机名称吗?      如果你发布的计算机IP为:192.168.0.22 端口号为8080;         在IE中输入http:// 192.168.0.22: 8080  或http://xxxx:8080均可(xxxx为WEB服务计算机的名称)。发布时不能使用计算机名称代替IP地址。    47:力控与ACCESS连接,在运行系统上连接正常,数据能够保存到数据库,可是在WEB上就不行连接不上ACCESS了, 是不是要用IS WEB函数?      通过WEB发布后在IE客户端是不能实现与该关系数据库通讯的!因为Access不属于网络数据库,SQLConnect语句中的数据源无法在客户端进行连接。力控发布时将脚本程序发布到客户端,不管你是否用ISWEB函数屏蔽程序,都无法找到该数据源。就是说WEB发布后客户端不能连接力控主题之外的Access程序了。这时你可以选用网络型数据库如SQL  SERVER 2000等,使用系统DSN建立ODBC数据源进行网络查询是可以的。 48:使用SQLConnect函数之后,怎样才能查看有没有连接上数据源呢?    力控SQL函数中有这样一条语句:SQLLastError(ErrorMes),表示取得SQL函数的最后一条错误信息。执行这条语句,然后查看ErrorMes(字符型变量)的信息即可得到连接的状态。    49:从关系数据库中采到的数据在力控中是怎么保存的?可以通过什么方式在力 控的运行画面中显示?      在建数据表绑定表的时候,对应的字段有对应的数据库变量。当从关系数据库中采集数据的时候,数据都保存到了力控的历史数据库中对应的变量里面。采集完数据后可以使用SQLDisplayToGrid 函数把数据显示在力控的内置数据表中。    50:用力控的函数StartApp启动了一个EXCEL的一个表格,但使用StopApp 函数并不能自动关闭这个表格,为什么呀? StartApp函数可以启动多种类型的文件,但StopApp函数只能关闭可执行文件,即后缀为.exe的文件。  51:使用StartApp函数启动的WINDOWS自带的小键盘,使用StopApp函数为何关不掉?      是使用函数方法不对,首先将函数StartApp启动后的应用程序标识赋值给AppID(整型变量),如:AppID=StartApp("C:\WINDOWS\system32\osk.exe");然后使用函数StopApp(AppID)才能将AppID指定的程序关闭。 52:如何求一段时间的小时数?(常用于GetStatisData()函数的Timespan 参数)     首先取起始时间的整型时间值LongTime(起始时间),再取终止时间的整型时间值LongTime(终止时间),再用nTime=LongTime(终止时间)-LongTime(起始时间) 小时数为:nHour=nTime/3600。 例如:求2004年10月1日0点0分到2004年11月1日0点0分,表达式即为: nHour=(LongTime("2004/10/1 00:00:00")-LongTime("2004/11/1 00:00:00"))/3600。  53: 使用力控控制策略PID结合模块做模拟量采集和调节控制,经常出现下置 数据超时或通讯停止的问题?      由于力控的PID运算调节周期短(10ms),如果直接将输出结果给模块会造成输出过频,出现上述写超时的现象。可以将输出做延时等控制。  54: 如何在历史趋势中用一支笔在不同时间内切换显示不同变量的值?      可以使用字段中的Tag1-Tag8修改每只趋势笔显示的内容。也可以在历史趋势组态时选择双击时“变量时间设置框”。 或在特殊功能下的位号组里,定义几组位号组,然后,用函数ChangeGroup()可以动态切换。 55: 使用X-Y曲线时,我手工给X和Y对应的变量输入数值,发现坐标系中点了两个点,根本不是我要的曲线,这是为什么呀?      X-Y曲线是表达Y与X关系的曲线,必须同时(时间差很微小)获得数值。否则会出现上述现象。自动采集和运算时因周期短不存在这个问题,手工输入时需要做左键动作的脚本赋值。如:X.PV=A1.PV; Y.PV=A2.PV;  输入A1.PV和A2.PV的值后对前面的脚本进行确认,显示X.PV与Y.PV即可。     56:为何运行时能在历史趋势中看到实时曲线,向前查询时却看不到历史曲线?     1、  在数据库组态时对该变量没有进行历史保存或保存方式不合适。      2、  变量的量程过大,趋势数值范围太小,实际显示的数值占量程的百分比非常小, 所以感觉没有曲线显示,或曲线在数值范围外。 如果是组态中没有保存历史,在实时数据库系统的信息中会有“历史点不存在XXXX”(XXXX是数据库变量名称)的错误提示。    57:如果组态的画面中,有的画面需要对用户进行限制访问权限,即一些人 可以浏览一些人不可以浏览,怎么来实现?       组态时在“DRAW”窗口中的“特殊功能”——“用户组态”中,组态不同级别的用户及相 应用户口令。在需要设置画面浏览权限的窗口做“进入窗口”的脚本动作,判断$userle- vel 的值,当该值小于某个数时(0,1,2,3),关闭该窗口。只有以级别高的用户登录时($userlevel>?),才可以访问该窗口。注意登录后,用完该窗口,要注销,对该窗口的保护才继续起作用。  58: 不想别人打开我的工程,对整个工程的开发与运行环境进行加密可以吗?       可以,只需在用户管理中定义一定级别的用户,在“配置”——“开发系统参数”——“组态保护”中选择一合适级别即可。即,只有等于或高于该级别的用户才能进入工程的开发系统。另外一种方式为:力控的运行加密锁可以使用“特使功能”——“工程加密”对工程进行加密,切记不要忘记密码也不要用同一个加密锁在不同工程中使用,否则将造成原有工程不能进入。运行系统加密可在“配置”——“运行系统参数”——“参数设置”中选择进入运行权限。 59:起始时间控件返回的是long型值,用什么函数能取得从中的“年”,“月”,“时”,“分”,“秒”?    使用函数:     StrTime(time, format)//将整型时间转成字符串形式 和     StrMid(String, First, Count)//截取由First开始Count个字符组成的字符串。          例如:求时间控件返回的年份:     cYear=StrMid(StrTime(#timer1.TimeGet(),2),0,4) //timer1为起始时间控件      60:如何求一段时间的小时数?(常用于GetStatisData()函数的Timespan参数)    首先取起始时间的整型时间值LongTime(起始时间),再取终止时间的整型时间值LongTime(终止时间),再用nTime=LongTime(终止时间)-LongTime(起始时间),求得小时数为:nHour=nTime/3600     例如:求2004年10月1日0点0分到2004年11月1日0点0分,表达式即为:     nHour=(LongTime("2004/10/1 00:00:00")-LongTime("2004/11/1 00:00:00"))/3600    
文章
数据采集  ·  BI  ·  数据库  ·  数据安全/隐私保护  ·  Windows
2009-12-07
SQL Server SQL语句导入导出大全(转)
软SQL Server数据库SQL语句导入导出大全,包括与其他数据库和文件的数据的导入导出。  /******* 导出到excel  EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""’  /*********** 导入Excel  SELECT *  FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,  ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+’ ’ 转换后的别名  FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’, ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions  /** 导入文本文件  EXEC master..xp_cmdshell ’bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword’ /** 导出文本文件  EXEC master..xp_cmdshell ’bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword’ 或  EXEC master..xp_cmdshell ’bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword’ 导出到TXT文本,用逗号分开  exec master..xp_cmdshell ’bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password’ BULK INSERT 库名..表名  FROM ’c:\test.txt’  WITH (  FIELDTERMINATOR = ’;’,  ROWTERMINATOR = ’\n’  ) --/* dBase IV文件  select * from  OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’  ,’dBase IV;HDR=NO;IMEX=2;DATABASE=C:\’,’select * from [客户资料4.dbf]’)  --*/ --/* dBase III文件  select * from  OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’  ,’dBase III;HDR=NO;IMEX=2;DATABASE=C:\’,’select * from [客户资料3.dbf]’)  --*/ --/* FoxPro 数据库  select * from openrowset(’MSDASQL’,  ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’,  ’select * from [aa.DBF]’)  --*/ /**************导入DBF文件****************/  select * from openrowset(’MSDASQL’,  ’Driver=Microsoft Visual FoxPro Driver; SourceDB=e:\VFP98\data; SourceType=DBF’,  ’select * from customer where country != "USA" order by country’)  go  /***************** 导出到DBF ***************/  如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句  insert into openrowset(’MSDASQL’,  ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’, ’select * from [aa.DBF]’)  select * from 表  说明: SourceDB=c:\ 指定foxpro表所在的文件夹  aa.DBF 指定foxpro表的文件名.  /*************导出到Access********************/  insert into openrowset(’Microsoft.Jet.OLEDB.4.0’,  ’x:\A.mdb’;’admin’;’’,A表) select * from 数据库名..B表  /*************导入Access********************/  insert into B表 selet * from openrowset(’Microsoft.Jet.OLEDB.4.0’,  ’x:\A.mdb’;’admin’;’’,A表) ********************* 导入 xml 文件 DECLARE @idoc int  DECLARE @doc varchar(1000)  --sample XML document  SET @doc =’  <root> <Customer cid= "C1" name="Janine" city="Issaquah">  <Order oid="O1" date="1/20/1996" amount="3.5" />  <Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied </Order>  </Customer>  <Customer cid="C2" name="Ursula" city="Oelde" >  <Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue  white red"> <Urgency>Important</Urgency>  Happy Customer.  </Order>  <Order oid="O4" date="1/20/1996" amount="10000"/>  </Customer> </root> ’ -- Create an internal representation of the XML document.  EXEC sp_xml_preparedocument @idoc OUTPUT, @doc  -- Execute a SELECT statement using OPENXML rowset provider.  SELECT *  FROM OPENXML (@idoc, ’/root/Customer/Order’, 1)  WITH (oid char(5), amount float, comment ntext ’text()’)  EXEC sp_xml_removedocument @idoc     本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/10/09/918428.html,如需转载请自行联系原作者
文章
SQL  ·  XML  ·  数据库  ·  数据格式
2017-11-14
.Net平台技术栈?不止于此
首先援引一名工友几年前的文章:http://csharper.blog.51cto.com/3052247/1330022,结合当前微软技术领域及平台工具现状,文章有增改。   .NET是个很大、很宽、很广的概念。一个.NET,牵涉了太多的内容。这里大致的介绍一下.NET技术究竟包括哪些内容,当然还包括了与.NET开发相关的其它技术。   一、.NET Framework版本   2000年6月,微软宣布了其.NET战略,推出了全新的.NET平台C#语言。.NET Framework从1.0开始,到2.0版本,这是一个里程碑。现在用的最多的就是2.0版本,也是.NET Framework的基石。后来又推出3.0到3.5到4.0再到现在的4.7。时至今日,微软推出.Net Standard 1.0,2.0,旨在统一各领域技术标准库。Visual Studio开发工具,也由VS2003到VS2005到VS2008到VS2010再到VS2012以及现在的VS2013,以至于现在的VS2017(宇宙最强IDE)。从底层框架到开发工具,可以看出微软.NET战略的实施过程,以及今日微软全面拥抱开源的决心。   二、不同领域的技术   不论做以下何种方向的开发,C#语言是必须掌握的,也是.NET开发的基础。当然.NET平台也支持很多其它的语言,比如C++和VB.NET。但是微软.NET平台主推的第一编程语言是C#。这个语言与Java语言很类似,是C/C++ —> JAVA —> C#(读CSharp,所以C#的类文件都是以cs为后缀名的,这点与其它语言一样,如JAVA的类文件后缀名就是java)这样的一个发展过程,因此这些语言都是一个系列的。语法上类似或很像也是可以理解的。当然C#的语法更像是多种编程语言的混合体。LinQ是一个非常重要的语法,也是.NET的一大创新。多线程、Sockets通信技术,将是区分技术的标志。   三、技术体系   1、核心技术 1).NET技术:WinForm、ASP.NET、ASP.NET MVC、LinQ、WPF(Windows呈现基础框架)、WCF(Windows通信基础框架,包含WebService、.NET Remoting、消息队列等所有通信技术)、WF(Windows Worklfow Foundation 工作流基础框架)、SilverLight(银光,类似于Flex)、SharePoint、Entity Framework(ORM)、ADO.NET、SQL Server(2000、2005、2008)、MSChart(图表控件)、Crystal Report(水晶报表) 2)第三方技术:Log4NET(Apache日志组件)、NHibernate(Java的hibernate的.NET实现ORM)、spring.NET(依赖注入、控制反转等,也是Java的spring框架的.NET实现)、NetChart和WebChart(第三方图表控件)、K2 Workflow (K2工作流)、Ext.NET(专用于.NET的界面库) 3)WEB技术:HTML5、CSS3、JavaScript、XML、JSON、DOM、DIV、AJAX以及jQuery(JQuery UI/JQuery Easy UI)、ExtJS等JS脚本库  4)Mobile技术:Xamarin框架下的App应用开发,和移动web开发。WP开发、JQuery Mobile(移动端js开发库) 5).Net Core 跨平台开发。          2、数据库技术   1)Oracle、MS-SQL Server、MySQL、DB2、Access、SqLite、VFP等   2)SQL编程(游标)、存储过程(带参数、不带参数、复杂的、输入输出参数)、触发器(特殊的存储过程,自动触发)、事务、视图(物化视图)、计划任务(job)、序列、SQL多表海量数据查询优化等   3、中间件技术   IIS、GIS(ARCGIS、SuperMap)   4、其它工具及技术 Microsoft Office工具(Word、Excel、PPT、Project、Visio等)、Sybase PowerDesigner(数据库建模工具)、版本控制(CVS、SVN、VSS)、FTP(Server-U、Filezilla)、加密狗、WordToPDF   5、其它   计算机硬件修理(故障排除、数据恢复、硬盘修复)、网络故障排除(路由器、交换机)、各种设备的使用及设置(打印机、扫描仪、复印机,针式、喷墨、激光)、服务器、虚拟化、存储   四、理论知识(软件方向)   做软件开发必须要有理论知识的储备,并且要精通一些课程。理论知识不足,很难真正上升为高级工程师(操作与理论并举,能够真正的开发出具有创新意义的软件系统)的层次,最多也就是高级技师(操作精通,能有一些创新,但仅仅限于操作技术的创新)。   最核心的四门课:1)数据结构 2)操作系统 3)计算机组成原理 4)计算机网络 其它课程:数据库原理及应用、编译原理、C语言、汇编语言、软件工程、计算机英语、数学(离散数学、高等数学、线性代数、概率统计等)   五、发展路线 1、程序开发(1-2 years) 2、软件设计(2-5 years) 3、系统分析(5-10 years) 4、系统架构(5-10 years) 5、项目管理(5-10 years)   六、证书认证 1、行业认证:微软认证(MCSE、MCSD、MCITP、MCPD、MCM、MCA)——MVP 2、国家认证:软考(程序员、软件设计师、系统分析师、系统架构设计师、信息系统项目管理师) 3、教育认证:计算机等考(江苏省一二三级、国家一二三四级) 4、培训认证:北大青鸟ACCP(初级程序员、程序员、软件工程师) 不止于此。 墨匠
文章
Java  ·  程序员  ·  C#  ·  数据库  ·  Windows
2017-06-21
数据库
252936 人关注 | 52043 讨论 | 98917 内容
+ 订阅
  • 机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
  • 公有云资源记录笔记
  • PHP的表单完成是什么意思?底层原理是什么?
查看更多 >
开发与运维
5770 人关注 | 133257 讨论 | 318717 内容
+ 订阅
  • 公有云资源记录笔记
  • PHP的$_GET或$_POST是干什么的?底层原理是什么?
  • PHP的表单完成是什么意思?底层原理是什么?
查看更多 >
大数据
188705 人关注 | 30736 讨论 | 83785 内容
+ 订阅
  • 机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
  • PHP的表单完成是什么意思?底层原理是什么?
  • PHP为什么需要有全局变量和超全局变量?底层原理是什么?
查看更多 >
安全
1243 人关注 | 24116 讨论 | 85586 内容
+ 订阅
  • 公有云资源记录笔记
  • 产品学习笔记
  • 多号管理为什么要用http代理中的独享IP代理服务?
查看更多 >
人工智能
2866 人关注 | 12304 讨论 | 102403 内容
+ 订阅
  • 机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
  • 【ASPLOS 2023】图神经网络统一图算子抽象uGrapher,大幅提高计算性能
  • 数据结构是干什么的?为什么需要数据结构?底层原理是什么?
查看更多 >