| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2548 人关注过本帖
标题:[求助]ado连接sql把一个表内的信息导出为txt文本,每个字段有固定的长度左对 ...
只看楼主 加入收藏
hou0459
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-14
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
[求助]ado连接sql把一个表内的信息导出为txt文本,每个字段有固定的长度左对齐,长度不够的用空格补齐,我不知道null的怎么对齐。
我要把sql2000数据库中的一个商品信息表的内容导出到txt文本。要有固定的格式。就是每个字段有固定的长度。左对齐。长度不够的用空格补齐。但是有的字段是null,我就怎么也对不齐了。希望哪位高手给帮忙看看。最好给我一段代码。我是菜鸟不太懂。下面是我的代码和我的执行结果和正确结果的对比。麻烦大家了。急。
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim num As Integer
Dim out As String
Dim i As Integer

Private Sub Command1_Click()
rs.MoveFirst
For i = 1 To num
out = out & rs.Fields(0) & rs.Fields(1) & rs.Fields(2) & rs.Fields(3) & rs.Fields(4) & rs.Fields(5) & Space(8 - Len(rs.Fields(5))) & rs.Fields(6) & Space(rs.Fields(6)) & vbCrLf
rs.MoveNext
Next i
Open "d:\text.txt" For Output As #1
Print #1, out
Close #1
MsgBox "文件被成功导出" & Text1.Text & "条", vbOKOnly
End Sub

Private Sub Form_Load()
num = 0
out = ""
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=hb"
cn.Open
Set rs = cn.Execute("select item_no ,cast(item_subno as char(15)),cast(item_name as char(40)),cast(item_size as char(20)) ,cast(unit_no as char(4)),price, sale_price from t_bd_item_info")
rs.MoveFirst
Do While Not rs.EOF()
num = num + 1
rs.MoveNext
Loop
Text1.Text = num

End Sub
下面是我的执行结果:(有一个字段是null就不能对齐了)
04902001   14302001       粽子                      1.2     1.5  
05101001   25030001       精装纯牛奶           250g                 1.8     2.2
下面是正确的结果:
04902001   14302001       粽子                                        1.2     1.5     
05101001   25030001       精装纯牛奶            250g                 1.8     2.2
搜索更多相关主题的帖子: sql null 字段 txt ado 
2009-11-14 01:14
Jian_X
Rank: 4
等 级:业余侠客
威 望:1
帖 子:51
专家分:212
注 册:2009-10-23
收藏
得分:10 
提供一个思路:
你可以定义变量来读取字段的值,在读取字段值的时候用isnull来对字段值进行判断,如果值为null,就给变量付值为0或"",然后再用变量来输出。
dim tempValue as string(as integer)
if isnull(rs.fields(i)) then
    tempValue = ""
else
    tempValue = rs.fields(i)
end if
你可以只对你认为有null值的字段进行这种操作。
2009-11-14 07:58
hou0459
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-14
收藏
得分:0 
回复 2楼 Jian_X
非常感谢。
2009-11-14 14:55
快速回复:[求助]ado连接sql把一个表内的信息导出为txt文本,每个字段有固定的长 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041553 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved