- PR -

列の一括変換

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/11/19
投稿数: 5
投稿日時: 2006-09-23 09:33
http のpost で
キー情報と変更データの情報を一括で取り込んで
DB変更ということはできませんか?
たとえば
create table test(test1 text, test2 text);
となるテーブルに対し、postのクエリの与え方と
それに対する受け方を簡単にする方法はありませんか?
postgres+perl です。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-09-23 10:02
引用:

未記入さんの書き込み (2006-09-23 09:33) より:
http のpost で
キー情報と変更データの情報を一括で取り込んで
DB変更ということはできませんか?
たとえば
create table test(test1 text, test2 text);
となるテーブルに対し、postのクエリの与え方と
それに対する受け方を簡単にする方法はありませんか?
postgres+perl です。


ごめん。意味がわからん。
_________________
質問する前にググレカス
未記入
会議室デビュー日: 2005/11/19
投稿数: 5
投稿日時: 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";
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2006-09-23 14:09
一括の意味が不明ですが、一般的に1行ごとに insert分 発行するのが普通です

それ以外の方法でも一括で挿入できますが、それは 外部コマンドを呼び出して
各データベースにインポートするという形になりますが? ちなみに内部処理は 同じことを
やっている
 
>受け取るほうのプログラムで 苦労しています。

uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-09-25 11:05
普通に一行分づつUPDATEをかけるしかないと思います。
1

スキルアップ/キャリアアップ(JOB@IT)