This creates a csv file that will be downloaded. The calling procedure will create the Recordset then Call this and then do showurl.
I have a function that creates a text cvs file.
Can I make tos as Webfile, a property of the window?
Not sure what to do?
[code]
DoCVS(rs as RecordSet)
dim tos as textOutputStream
dim s as string
dim i, j as integer
tos = lfFile.CreateTextFile
s=""""
Dim lnEmailCol As Integer
for i = 1 to rs.FieldCount
s = s +rs.IdxField(i).Name + “”","""
next
tos.WriteLine(s.left(s.len-2))
for i=1 to rs.RecordCount 'for each row
s="""" 'build line to save
for j=1 to rs.FieldCount 'for each column
s = s + ChkStr(rs.IdxField(j).StringValue) + “”","""
next
tos.WriteLine(s.left(s.len-2))
rs.MoveNext 'save line
next
Yes, prepare your CSV entirely then put the string in the WebFile.Data property.
You’ll need to rewrite your code such that you’re not generating the CSV during the write operation. I would recommend this as a general best practice too.
It is possible to avoid messing around with String.Left if you construct the row as an array kind of like this:
dim rs as RecordSet = MySelect
dim tarsRows() as String
while not rs.EOF
dim tarsThisRow() as String
for i as Integer = 1 to rs.FieldCount
tarsThisRow.Append(rs.IdxField(i).StringValue)
next i
// Build the row and append it to the complete data
dim sThisRow as String = Join(tarsThisRow, ",")
tarsRows.Append(sThisRow)
rs.MoveNext
wend
// Generate the complete CSV from the rows
dim sCSV as String = Join(tarsRows, EndOfLine.Unix)
// Prepare the WebFile
moMyWebFileInstance.Data = sCSV
Notes about this code:
This was written in the forum post editor, corrections may be necessary
Depending on your data, you may need to apply quotes to a field
This is a really flimsy CSV generation method, there may be better options