2017-03-02 13 views
0

古典的なASPを使用してオンザフライでTXTファイルを作成して送信する必要があります。私はこのファイルをディレクトリに保存してServer.CreateObject( "ADODB.Stream")を使用してこのファイルを作成する方法を知っています...しかし、私が欲しかったのはディレクトリに保存せずに、 。 この場合、TXTファイルは、MySql DBから抽出されたレコードのリストです。一つの各ライン...ASPストリームは、オンザフライで作成されたTXTファイルを送信します

strSQL = "SELECT * FROM mydb WHERE condition='ok';" 
Set rs = my_conn.Execute(strSQL)  

    Response.Buffer = False 
    Dim objStream 
    Set objStream = Server.CreateObject("ADODB.Stream") 
    objStream.Type = 1 'adTypeBinary 
    objStream.Open 
    Response.ContentType = "application/x-unknown" 
    Response.Addheader "Content-Disposition", "attachment; filename=recordsfile.txt" 
    Response.BinaryWrite (dunno how to create a file with rs("field01") & " _ " & rs("field02") & vbnewline 
    objStream.Close 
    Set objStream = Nothing 

はそれがこれを行うことは可能です...ストレムにメモリ内のファイルを作成/送信... orthereはnoオプションではありませんが、ディスク上に作成し、保存する前と後で送る意味??

答えて

0

次のように動作します。注:私の例では、レコードセットが1つのフィールドを返すと仮定しています。

strSQL = "SELECT * FROM mydb WHERE condition='ok';" 
Set rs = my_conn.Execute(strSQL) 

if not rs.eof then 

    response.contentType = "application/octet-stream" 

    response.addHeader "Content-Disposition", "attachment; filename=recordsfile.txt" 

    do until rs.eof 
     response.write rs(0).value & vbcrlf 
     rs.movenext 
    loop 

end if 
関連する問題