トップページphp
323コメント112KB

Perl::DBI

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/03/12 23:35ID:xHkBB9i/
DBIでも語ろうぜ

DBI.org
http://DBI.perl.org
DBI-ML-J
http://member.nifty.ne.jp/hippo2000/dbi/dbi_japan.htm
DBI.pm 日本語訳
http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm
0320nobodyさん2010/11/18(木) 14:10:29ID:Cpwx90i/
IIS <-> Perl <-> OCDB <-> Access(mdb) on WinXP という環境なんですが

mdb上のメモ型フィールドのデータをPerl上で "SELECT memo FROM sampletable" として抽出しようとすると
DBD::ODBC::st fetch failed: [Microsoft][ODBC Microsoft Access Driver]文字列データの右側が切り捨てられました。 列番号 1 (Title) (SQL-01004) at C:\yyy\xxx\www\test.pl line 28.
というエラーが出て、配列にデータが格納されません。

メモ型のみで、テキスト型フィールドのデータはきちんと抽出され、配列に格納されます。

調べてみたところ、メモ型フィールドはSELECTで抽出できないという文章を目にしたのですが
もしそうなのであれば、255Byte以上の文字列はどのようにDBへ出し入れすればよいのでしょうか?

ちなみに、Access上のSQLクエリでSELECTにて抽出した場合には、メモ型フィールドもきちんと抽出されてきます。
同じ命令をOCDB経由で投げると上記エラーが出てきます。
どなたが、救いの手を・・・


03213202010/11/19(金) 16:01:37ID:???
メモ型でもフィールド内が40文字以下ならば、抽出可能なことが判明。
それを超えるとエラーしてしまう。
テキスト型でも、フィールドサイズが255文字までなので、それ以下しか扱えないということになってしまいます。

相変わらず、メモ型の動作が想定外な為、自己解決ならず。
0322nobodyさん2011/01/03(月) 19:39:28ID:???
テーブル名にプレースホルダ表記は使えませんか?

$stl = $dbh->prepare("CREATE TABLE ? ( ? char(2) )");
$stl->execute($table_name, $key_name);

文法エラー:
CREATE TABLE 'my_table' ( 'my_key' char(2) )

ほんとうは
CREATE TABLE my_table ( my_key char(2) )
じゃなきゃだめ
0323 【小吉】 【22円】 【46.5m】 電脳プリオン2013/01/01(火) 14:24:28.53ID:????PLT(12079)
  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>79
            / ←>>94
■ このスレッドは過去ログ倉庫に格納されています