出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

[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を直接ソースに書き込むしかないのでしょうか?

海外サーバでのデータベース利用時の文字化け   Beginnerさん [2003/01/20 23:08:12] [3121]


TreeBBS For ASP V.0.1.3
Program By YasNet