- - PR -
列の一括変換
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-09-23 09:33
http のpost で
キー情報と変更データの情報を一括で取り込んで DB変更ということはできませんか? たとえば create table test(test1 text, test2 text); となるテーブルに対し、postのクエリの与え方と それに対する受け方を簡単にする方法はありませんか? postgres+perl です。 | ||||
|
投稿日時: 2006-09-23 10:02
ごめん。意味がわからん。 _________________ 質問する前にググレカス | ||||
|
投稿日時: 2006-09-23 10:19
test table
----------------------- test1 | test2 ----------------------- aaa | a1 bbb | a2 ccc | a3 .... nnn | an というテーブル構成のとき test1 を一括で入力できるhtml を用意して そのpostの値で、DBを一括で変換できないかということです。 html は以下でできるのですが、受け取るほうのプログラムで 苦労しています。 form への変数の与え方にも問題があるかもしれません。 -- #!/usr/bin/perl use CGI; #use CGI::Carp qw(fatalsToBrowser); use DBI; my $html=new CGI; print "Content-Type: text/html; charset=euc-jp\n\n"; my $i=0; $dbh=DBI->connect("DBI:Pg:dbname=dbmane;host=hostname" , "id" , "pw"); $sql="select count(*) from table"; $sth=$dbh->prepare($sql); $sth->execute(); $srch_data=$sth->fetchall_arrayref; $cnt=$srch_data->[0][0]; $sql1="select * from table"; $sth1=$dbh->prepare($sql1); $sth1->execute(); $srch_data1=$sth1->fetchall_arrayref; print "<html>\n"; print "<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\n"; print "<meta http-equiv=\"Pragma\" content=\"no-cache\">\n"; print "<title>fileupload</title>\n"; print "<!-- ファイル情報を表示する関数の呼び出し -->\n"; print "<script type=\"text/javascript\"><!--\n"; print "--></script>\n"; print "</head>\n"; print "<!-- 本文は空白でもOK -->\n"; print "<body>\n"; print "<form action=\"next.cgi\" method=\"post\">\n"; print "<table border=\"1\">\n"; print "<tr><td>\n"; print "test2</td>\n"; print "<td>test1</td></tr>\n"; for ($i=0; $i<$cnt ; $i++){ print "<tr><td>\n"; print "<input type=\"hidden\" name=\"test2$i\" VALUE=\"$srch_data1->[$i][1]\" >\n"; print "$srch_data1->[$i][0]\n"; print "</td><td>\n"; print "<input type=\"text\" name=\"test1$i\" VALUE=\"$srch_data1->[$i][0]\" >\n"; print "</td></tr>\n"; } print "<tr><td><input type=\"submit\" value=\"OK\"></td></tr>\n"; print "</table>\n"; print "</form>\n"; print "</body>\n"; print "</html>\n"; | ||||
|
投稿日時: 2006-09-23 14:09
一括の意味が不明ですが、一般的に1行ごとに insert分 発行するのが普通です
それ以外の方法でも一括で挿入できますが、それは 外部コマンドを呼び出して 各データベースにインポートするという形になりますが? ちなみに内部処理は 同じことを やっている >受け取るほうのプログラムで 苦労しています。 | ||||
|
投稿日時: 2006-09-25 11:05
普通に一行分づつUPDATEをかけるしかないと思います。
| ||||
1
