[PHP-users 21920]Re: データベース上のExcelをダウンロード

Y.Watanabe yuw @ msj.biglobe.ne.jp
2004年 6月 1日 (火) 09:34:23 JST


渡辺です。

"Kuma" wrote on 2004/06/01 09:27
with Subject: [PHP-users 21919] Re: データベース上のExcelをダウンロード

>まじん様,藤本様,Mashiki様,ありがとうございます.
>ご返事が遅くなりました.
>
>以下のソースで試しました.
>
><?php
>$con = mssql_connect("db_server","sa","");
>mssql_select_db("db_name",$con);
>$str="select * ";
>$str = $str . "from hoge ";
>$str = $str . "where id = 12345";
>$rs = mssql_query($str);
>header("Content-Type: application/ms-excel");
>header("Content-Disposition: attachment; filename=test.xls");
>header("Content-Transfer-Encoding: base64");
>echo chunk_split(mssql_result($rs,0,"excel_obj"));
>exit();
>?>
>
>結果,今までとは状況が変わりました.
>Excelが開いた後,以下のメッセージが出るようになりました.
>「test[1].xlsにアクセスできません.ファイルは読取専用であるか,
>または読取専用の場所にアクセスしようとしています.または,
>サーバ上に保存されているドキュメントから応答がありません.」
>
>だいぶ進歩したような気がします!?
>ご教授いただいた,ob_end_clean(); を先頭に付けても見ました.
>状況は変わりませんでした.
>読み取るだけなので,読取専用でも開いてほしいところですが,
>「サーバ上に保存されているドキュメントから応答がありません」
>という,メッセージのほうを気にして調査してみます.

というか、本当に、SQL Server上にエクセルのファイルが
バイナリ形式(またはbase64変換された形式?)で保存されているのでしょうか?
PHPをとおさずにSQL Serverに対してSELECT文を直接たたく
とどういう結果が出てくるのでしょうか?
SQL Serverにバイナリデータを出し入れする方法が
ただのSELECTでできるのでしょうか?
なんかほかの方法でやらなきゃなんなかったりしませんか?
そっちを調査してからじゃないとPHPに話が至らないのでは?
ほかのひともそういうことを言ってるんだと思いますが。
#このMLは自分も含めmysql,posetgresql,oracleでやってる人のほうが大多数なので
#このヘン詳しくつっこめる人が少ないのかも。






PHP-users メーリングリストの案内