出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
[3121] 海外サーバでのデータベース利用時の文字化け |
投稿者:Beginnerさん 2003/01/20 23:08:12 |
私は卒業論文で作成したASPのスケジュール管理のスクリプトを、海外サーバ(Brinkster)にアップロードし、 利用しようとしましたが、文字化けでかなり苦戦しております。 データベースからの読み出しは<%@CODEPAGE=932 %>で解消いたしましたが、 データベースへの書き込み時に文字化けが発生します。2バイトコードの文字が全て?に置き換わります。 具体的には予定書き込み時と、修正時に起こります。 フォームで別ページに送られたデータが文字化けしているのかと、Response.Writeで確認しましたが、 会議(フォーム入力文字)⇒会議(フォーム受け取りデータ)で、フォーム間では文字化けは起こっていませんでした。 このことから、データベースへinsert時に文字化けが起こっているものと判断いたしましたが、インターネットでどれだけ調べても insert時の文字コード指定の方法が見つかりませんでした。どうかご教授願います。 (insertはadodb.command利用してmdbのクエリを実行しております。) *********開発環境********* WindowsXP+IIS5.1 データベースファイル mdb データベース接続 ODBC ************************** ↓↓↓↓↓↓↓↓↓↓↓↓↓↓スクリプトソース↓↓↓↓↓↓↓↓↓↓↓↓↓↓ if session.Contents("hgid") = "" then wgid="none" else wgid=session.Contents("hgid") 'session.Contents("hgid")⇒ログインしているグループのセッションデータ end if wlog=now sday=day(request.querystring("dat")) 'request.querystring("dat")⇒日付のクエリ情報 set db=server.createobject("adodb.connection") set cmd=server.createobject("adodb.command") db.mode=2 db.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/master.mdb") cmd.activeconnection=db cmd.commandtype=&h0004 cmd.commandtext="scheinsert" '利用するmdbのクエリ名 set prm=cmd.createparameter("dat",7,&h0001,,request.querystring("dat")) 'request.querystring("dat")⇒日付のクエリ情報 set prm2=cmd.createparameter("Stim",134,&h0001,,Stim) set prm3=cmd.createparameter("Etim",134,&h0001,,Etim) set prm4=cmd.createparameter("cate",200,&h0001,10,Request.Form("cate")) 'Request.Form("cate")⇒予定区分のフォームデータ(2バイトコード) set prm5=cmd.createparameter("title",200,&h0001,30,Request.Form("title")) 'Request.Form("title")⇒予定のタイトルのフォームデータ set prm6=cmd.createparameter("place",200,&h0001,30,Request.Form("place")) 'Request.Form("place")⇒予定の場所のフォームデータ set prm7=cmd.createparameter("nam",200,&h0001,255,nam) 'Request.Form("nam")⇒予定の内容のフォームデータ set prm8=cmd.createparameter("wuid",200,&h0001,10,session.Contents("huid")) 'session.Contents("huid")⇒ログインしているユーザのセッションデータ set prm9=cmd.createparameter("wgid",200,&h0001,10,wgid) 'wgid⇒ログインしているグループのセッションデータ set prm10=cmd.createparameter("wlog",135,&h0001,,wlog) 'wlog⇒現在の時間 set prm11=cmd.createparameter("sday",3,&H0001,,sday) 'sday⇒日付のクエリ情報 cmd.parameters.append prm cmd.parameters.append prm2 cmd.parameters.append prm3 cmd.parameters.append prm4 cmd.parameters.append prm5 cmd.parameters.append prm6 cmd.parameters.append prm7 cmd.parameters.append prm8 cmd.parameters.append prm9 cmd.parameters.append prm10 cmd.parameters.append prm11 cmd.executecmd.execute ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ↓↓↓↓↓↓↓↓↓↓↓↓↓利用するmdbのクエリのSQL↓↓↓↓↓↓↓↓↓↓↓↓ PARAMETERS dat DateTime, Stim DateTime, Etim DateTime, cate Text ( 255 ), title Text ( 255 ), place Text ( 255 ), nam Text ( 255 ), wuid Text ( 255 ), wgid Text ( 255 ), wlog DateTime, sday Short; INSERT INTO schedule ( pdate, ptime, etime, cate, ptitle, place, pname, wuid, wgid, wlog, sday ) SELECT [dat] AS 式1, [Stim] AS 式2, [Etim] AS 式3, [cate] AS 式4, [title] AS 式5, [place] AS 式6, [nam] AS 式7, [wuid] AS 式8, [wgid] AS 式9, [wlog] AS 式10, [sday] AS 式11; ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 今利用するmdbのクエリを、AccessのSQLビューアで開いてコピーし、こちらへ貼り付けるときに思ったのですが、 もしかして”SELECT [dat] AS 式1, [Stim] AS 式2, [Etim] AS・・・・・・”の”式”がまずいのではないかと強烈に 思いました。しかし、これをどう変えたら良いかは全くわかりません。どうかご教授の程よろしくお願い申し上げます。 最悪adodb.commandの利用をやめて、SQLを直接ソースに書き込むしかないのでしょうか? |
TreeBBS For ASP V.0.1.3 |