こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

vb.netからpsqlコマンドを実行するには

DBサーバー:Linux、Postgresql 8.4.9
クライアント:Windows7 pro、vb.net 2010
にて開発を行っております。

■経緯
copyコマンドを使用して、クライアントにあるcsvファイルのデータを
DBテーブルに一括登録したいと考えております。
まず、「COPY table FROM 'csvファイルパス' 」で試したところ、

 ファイル経由のCOPY FROM、COPY TOを行うにはスーパーユーザでなければなりません
 標準入出力経由のCOPYは誰でも実行可能です。またpsqlの\\copyも誰でも実行できます

旨のエラーが返ってきた為、下記の方法を考えております。

■質問内容
psqlからのcopyにより、登録を行おうと考えている。

その際に、vb.netからpsqlコマンドの実行がそもそも可能なのかどうか、
(Linux上のpsqlコマンドなのだから、vb.netから実行できない?)
根本的なところからの質問となってしまいますが
よろしくお願いいたします。

また、上記実装を開設してるサイトなどもございましたら、
ご教授願います。よろしくお願いいたします。

投稿日時 - 2012-07-17 20:06:45

QNo.7596047

すぐに回答ほしいです

質問者が選んだベストアンサー

>vb.netからpsqlコマンドの実行がそもそも可能なのかどうか、
>(Linux上のpsqlコマンドなのだから、vb.netから実行できない?)
vb.netからサーバのLinux上のpsqlコマンドを実行できたとして、
(多分、大抵の人にはできない。
 Linux上にアプリを常時起動しておいて、vb.netのアプリと会話してpsqlを起動するという
 大変面倒な方法ができる人なら別ですが。)

>copyコマンドを使用して、クライアントにあるcsvファイルのデータを
>DBテーブルに一括登録したいと考えております。
ということは、Linuxから、クライアントのWindows7のファイルにアクセスしないといけない
ということになります。
(これはさらに大変では?
 ftpかなにかでファイル転送してLinux上に格納したファイルを処理すればできるかもしれませんが、
 コード変換とかどうするのだろう。。。)

ということで、
Windows版のpsqlを使ったらどうでしょう?
以下のURL参照。
http://www.psn.ne.jp/support/database/psql.html
但し、ざっとみただけでは、Windows7対応済みかどうかはよくわかりませんでした。

もし使えるなら、クライアント上でpsqlが動かせるので、バッチファイル等にしておくと
vb.netから起動できるはずです。

投稿日時 - 2012-07-22 22:50:08

お礼

ありがとうございます。
悩んでいたので助かりました。
後日、試させてもらいます。

投稿日時 - 2012-07-23 19:28:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問