能将txt数据cad导入sap2000到universal analysis2000中吗

1225人阅读
无论用sqlcmd或者通过C#逻辑处理,或者还是直接在SqlServer里执行操作,个人总结大概不过可归总为这两种方式:
2,OLEDB驱动引擎。
SSIS实在也好用,现在这里先不去讨论。其中大多数人用的都是第二种方法,下面,本人也以第二种方法在SqlServer里导入excel和txt格式文件的具体实例来说明怎样在项目里灵活通过OLEDB导入数据!
一,必要的环境说明
本实例用sql语句在SqlServer里面完成对数据的导入操作。
在本实例开始之前,可能需要先安装AccessDatabase引擎包
(本人机器64位,安装的是32位的office组件,所以需要另外安装office驱动引擎包(此引擎包作用在于使得office系统文件与office应用程序之间进行数据传输) - 此步骤中需要先卸载32位office组件,否则会提示驱动安装不成功)
本人所用引擎包下载地址如下:
/zh-cn/download/details.aspx?id=13255
安装完成后,具体配置可以这里配,建议如非必要,默认就好。
二,代码准备 - 建数据库及存储过程
建数据库这里不多说,建立与导入数据相匹配的数据库而已。
而为了项目拓展及方便使用管理,需要创建存储过程,目的是为了批量导入外部数据。
因为本例以excel和txt分别来做实例说明,所以,需要新建两个存储过程 - &sp_ReadXLSSource&和&sp_ReadSource&。代码分别如下:
存储过程:sp_ReadXLSSource
USE [CUSTOMS]
/****** Object:
StoredProcedure [dbo].[sp_ReadXLSSource]
Script Date: 11/21/:39 PM ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
ALTER PROCEDURE [dbo].[sp_ReadXLSSource]
@trgPath varchar(255),
@trgTable varchar(255),
@xlsFile varchar(255),
@xlsSheet varchar(255),
@xlsFields varchar(8000)
declare @mySql varchar(8000)
declare @myIntermediate varchar(8000)
declare @Firstfield varchar(100)
declare @FirstfieldValue varchar(100)
--Lookup lastfield
set @Firstfield = dbo.fnGetFirstField(@xlsFields)
set @FirstfieldValue = RTRIM(LTRIM(SUBSTRING(@Firstfield,2,CHARINDEX(']',@Firstfield,0)-2)))
--PRINT @FirstfieldValue
--Drop table if exists
set @myIntermediate = 'IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[' + @trgTable + ']'') AND type in (N''U''))'
set @mySql = @myIntermediate + ' DROP TABLE ' + @trgTable
exec(@mySql)
--PRINT @mySql
--Load Table
set @mySql = 'SELECT ' + @xlsFields + ' INTO ' + @trgTable + ' FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0;DATABASE=' + @trgPath + '\' + @xlsFile + ';IMEX=1'',
''Select * from ' + @xlsSheet + ''')'
+ 'WHERE NOT ' + @Firstfield + ' IS NULL'
--PRINT @mySql
exec(@mySql)
存储过程:sp_ReadSourceUSE [WOOX_CQM]
/****** Object:
StoredProcedure [dbo].[sp_ReadSource]
Script Date: 11/21/:33 PM ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
ALTER PROCEDURE [dbo].[sp_ReadSource]
@trgPath varchar(255),
@trgTable varchar(255),
@trgFields varchar(8000)
declare @mySql varchar(8000)
declare @myIntermediate varchar(8000)
declare @Firstfield varchar(100)
declare @FirstfieldValue varchar(100)
--Lookup lastfield
set @Firstfield = dbo.fnGetFirstField(@trgFields)
set @FirstfieldValue = RTRIM(LTRIM(SUBSTRING(@Firstfield,2,CHARINDEX(']',@Firstfield,0)-2)))
--PRINT @FirstfieldValue
--Drop table if exists
set @myIntermediate = 'IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].[' + @trgTable + ']'') AND type in (N''U''))'
set @mySql = @myIntermediate + ' DROP TABLE ' + @trgTable
exec(@mySql)
--PRINT @mySql
--Load Table
set @mySql = 'SELECT ' + @trgFields + ' INTO ' + @trgTable + ' ' +
'FROM OpenDataSource (''Microsoft.ACE.OLEDB.12.0'',
''Data Source=&' + @trgPath + '&;Extended properties=Text'')...'
+ @trgTable + '#txt '
+ 'WHERE NOT ' + @Firstfield + ' IS NULL AND ' + @Firstfield + ' && ' + '''' + @FirstfieldValue + ''''
--PRINT @mySql
exec(@mySql)
三,文件准备,导入源及Schema.ini配置文件
对于excel文件来说,相对txt格式,实在简单很多,关键不过以下这段代码
TRUNCATE TABLE WOOX_INFORMATICA..VBPA;
INSERT INTO WOOX_INFORMATICA..VBPA select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\InitialData\db_data.HDR=YES', 'SELECT * FROM [VBPA$]')
--(适用于office2007及以上版本,2003用Jet - &Microsoft.Jet.OLEDB.4.0&)其它需要注意的不过就是保证excel内的数据格式是统一的文本格式,这里只简单给出事例图,不做详细说明。
对于txt格式文件,本人所用格式如下。
//标示部分为标题;
ok,下面是关键,我们需要配置导入txt格式数据的配置文件Schema.ini!如果导入不成功或者出错,大都是这一步骤错了
(ps:此配置文件要和导入源放在同一个文件夹下,另外,文件夹目录最好别太长或者包含有空格之类的,这些自己注意!)
其中Schema.ini里规范格式如下。[SAP_TVSTZ.txt]
FORMAT=Delimited(|)
ColNameHeader=True
MaxScanRows=0
CharacterSet=Unicode
TextDelimiter=`
Col1=SKIP1 TEXT
Col2=SKIP2 TEXT
COL3=VSBED TEXT
COL4=LADGR char(100)
COL5=WERKS TEXT
COL6=LGORT TEXT
COL7=VSTEL TEXT
这里需要标明的是:域值内,第一行表示数据源文件名;第二行至第六行是必要的设置和说明,每个人按需修改;第七行以下必须按照Col从1索引开始递增,右边是显示的列名及格式。具体有兴趣的同学可以自己试着操作下,看下差异。
四,执行及检查
执行代码如下USE WOOX_CQM
EXECUTE sp_ActivateDistributedQueries
----------------------------- SAP Tables -----------------------------
DECLARE @LoadPath varchar(2000)
SET @LoadPath = 'C:\InitialData\SAPdata'
--import Excel--
EXECUTE sp_ReadXLSSource
@LoadPath,
'SAP_TCURF', 'SAP_TCURF.xls', '[Sheet1$]',
'[KURST],[FCURR],[TCURR],[GDATU], [FFACT],[TFACT],[FromDate],[ToDate]'
--import txt--
EXECUTE sp_ReadSource
@LoadPath,
'SAP_TVSTZ',
'[VSBED],[LADGR],[WERKS],[LGORT],[VSTEL]'
可用以下代码先行测试导入数据是否有差距,同学们记得更改本人所用的hardcored。select *
FROM OpenDataSource ('Microsoft.ACE.OLEDB.12.0',
'Data Source=&C:\InitialData\SAPdata&;Extended properties=Text')...SAP_TW06S#txtok,大概代码就是这样,如果有什么不懂或者有不同意见的,可用留言讨论!
五,通过SQL Server Agent Job 计划执行的出错处理
在用Job代理计划执行的时候,提示出错
此时的解决办法是打开Windows Services ,找到对应的服务实例,然后右键打开属性,选择登录选项,把登录用户更改为本地机器账号,保存重启,然后就可以的了。
&&&&&&&&&&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:64694次
排名:千里之外
原创:29篇
评论:14条
(1)(1)(1)(1)(2)(2)(1)(3)(2)(2)(1)(6)(1)(4)(1)(3)(3)小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
universal analysis 2000的一些问题
1.DSC文件如何导出TXT格式
2.在 universal analysis 2000 中能否将 几个结果显示在同一个窗口的一个坐标系中?
你好,怎么样在图中把文字和曲线加粗啊
研究生必备与500万研究生在线互动!
扫描下载送金币共有 1950 人关注过本帖
标题:求教--- 如何用C#将TXT文件中的数据导入到EXCEL中?
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:3&&&
求教--- 如何用C#将TXT文件中的数据导入到EXCEL中?
各位大侠, 我想把TXT文件里的数据导入到EXCEL里,那位搞过这方面的东东,请赐教。。。。。。
本人初学, 如果有好的关于这方面操作的书,麻烦推荐, 先谢了。
搜索更多相关主题的帖子:
等 级:蜘蛛侠
帖 子:367
专家分:1132
&&得分:10&
调用EXCEL,这个比较麻烦
1. 添加引用“Microsoft.Office.Interop.Excel”
&&& 这里要注意,要添加和自己Office版本一样的, 9.0是Office03,14是2007
2. 定义变量,这要对EXCEL的模型有一些了解
程序代码:&&&&&&&&private static Excel.Application myE//Excel主程序
&&&&&&&&private static Excel.Workbooks myB//
&&&&&&&&private static Excel.Workbook myB//
&&&&&&&&private static Excel.Worksheet myS//工作薄
&&&&&&&&private static Excel.Range myR
&&&&&&&&private static object miss = Type.M//你要是用的VS2011就不用这个了打开文件&&&&&&
程序代码:&&&&&&&&&void OpenExcelFile(string name)
&&&&&&&&&&&&myExcel.Workbooks.Open(name, miss, miss, miss, miss, miss,
&&&&&&&&&&&&&&& miss, miss, miss, miss, miss, miss, miss);
&&&&&&&&&&&&//myExcel.Workbooks.Open(Filename: name);VS2011可以这样写,方便很多
&&&&&&&&&&&&myBooks = (Excel.Workbooks)myExcel.W
&&&&&&&&&&&&myBook = myExcel.ActiveW
&&&&&&&&&&&&mySheet = (Excel.Worksheet)myExcel.ActiveS
等 级:版主
威 望:83
帖 子:2512
专家分:9300
&&得分:10&
推荐使用NPOI
出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
等 级:蜘蛛侠
帖 子:367
专家分:1132
关于内容,读和取都要先找到一个范围,EXCEL模型里有个mySheet.UsedRange(大概是已使用的内容)不过不好用,所以要自己想办法了,
简单介绍一下,EXCEL里每个Cell的排号,是A,1&&B,2 C,3这样
下面我提供的,不能超过24列,因为后面排的是AA,1 BB,1
程序代码:&&&&&&&&&&&&int start = <font color=#;
&&&&&&&&&&&&object range = null;
&&&&&&&&&&&&for (int i = <font color=#; i &= mySheet.UsedRange.Rows.C i++)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& for (int j = <font color=#; j &= mySheet.UsedRange.Columns.C j++)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&try
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&//这是取Range,WORD和EXCEL里面RANGE都是一个很重要的模型
&&&&&&&&&&&&&&&&&&&&&&&&range = ((char)(start + j)).ToString() + i.ToString();
&&&&&&&&&&&&&&&&&&&&&&&&myRange = mySheet.get_Range(range, miss);
&&&&&&&&&&&&&&&&&&&&&&&&//或者直接用Cell
&&&&&&&&&&&&&&&&&&&&&&&&mySheet.Cells[((char)(start + j)).ToString(), i] = &....&;
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&catch { }
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
版权所有,并保留所有权利。
Powered by , Processed in 0.026492 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved如何用TA universal analysis拟合曲线_百度知道
如何用TA universal analysis拟合曲线
提问者采纳
的光滑功能应该有一个光滑程度的调节。我这儿不是TA仪器,你的软件应该也是可调的,有7级光滑程度可选(按钮)
资深电脑人
其他类似问题
为您推荐:
analysis的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 3d3s导入sap2000 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信