PostgreSQL
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/09(水) 11:36ID:GHX.oCXo関連アプリケーション特有の話題は、以下のスレッドへ。
☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
0261nobodyさん
02/03/27 02:46ID:???難しいんだねぇ・・・
ま、とりあえずビジネスベースでMySQL使うなら、大人しくライセンス買っといたほうがいいってことだね。
顧客的にもそのほうが後々、幸せだろうし。
0263nobodyさん
02/03/28 04:46ID:xQXjNFYdログ)の実装は終わったのかな?
0264hogehoge
02/04/08 13:09ID:AYJuT8cHデカイ話だと思うんだけど、なんでみんな冷静ですか。
MLにも出てるけど
ttp://www.sankyo-unyu.co.jp/Pool/PostgreSQL.htm
ここのパッチでみんな解決したのかなあ。
0265nobodyさん
02/04/22 00:13ID:1DFRB74b0266nobodyさん
02/04/22 00:30ID:OmlBepHHそんなもんだよ。
私はPostgres と Oracle と MySQL と InterBase と パラドックス使ってる。
0267nobodyさん
02/04/22 14:06ID:7LCMI0nt以下のようなエラーがでてしまいます。
ODBC--呼び出しが失敗しました。
Error while executing the query.
ERROR: tablename: Permission denied. (#7)
PostgreSQLは Redhat Linux 7.2 で動かしていて、
psqlでの操作、table作成、
同マシン上でのJDBC経由での操作は問題ありません。
また、Access2000でpsqlで作成したtableの一覧はでてきており、
テーブルのリンクは作成できてます。
しかし、そのテーブルのリンクを開こうとすると、上記のエラーが
出てきてテーブルの中身は見ることができません。
何が原因なのでしょうか?
0268nobodyさん
02/04/22 19:57ID:???0269267
02/04/22 21:01ID:???0270nobodyさん
02/04/23 16:58ID:ScEW9CB6name | ocupation
鈴木一郎 | 野球選手
鈴木三郎 | タバコ屋
鈴木一郎 | 野球選手
鈴木次郎 | 魚屋
鈴木宗男 | 政治家
に対して
SELECT * FROM a_table WHERE name = '鈴木一郎';
した場合、全部出て来ちゃいます。
LIKE や "~" など正規表現では問題ないのですが。このためGROUPもできないのれす。
7.1の時は自分の環境じゃ起きなかったのに7.1.3からそうなるようになっちゃったです。
今まで放っておいたんですが、やっぱり治したい…。もちencodingはEUC_JPなんですけど。
0271270
02/04/23 17:25ID:ScEW9CB6例えば 鈴木喜三郎、田中一郎、大林素子を含むレコードに
鈴木一郎をSELECTした場合、鈴木喜三郎以外、全部出る…
田中一郎をSELECTした場合、 鈴木喜三郎以外、全部出る…
どうもSTRING長しか見てないような気がする…
0272nobodyさん
02/04/23 22:27ID:us8x58hp環境作って試験しましたがなりません。
実験手順は以下です。
1.PostgreSQL 7.13 を準備
2.SQL: create table house (name varchar(100),occupation varchar(100));
3.EUC/TAB区切りで >>270 の一覧を作成
4.\copy でインポート
5.SELECT * from house where name='鈴木一郎';
もし本当なら PostgreSQL Users-ML の方にポストするべきです。
入力した日本語文字コードがEUCかチェックを希望。
0273nobodyさん
02/04/23 23:07ID:???http://www.mysql.com/news/article-91.html
http://www.eweek.com/article/0,3658,s=708&a=23115,00.asp
http://www.eweek.com/slideshow/0,3018,sid=0&s=1590&a=23120,00.asp
0274nobodyさん
02/04/24 00:57ID:AExlUipDトランザクションも、オンライン・アーカイブ・ログも、ストアド・
プロシージャーも無いデーターベースを凄いといわれても・・・。
0275nobodyさん
02/04/24 02:28ID:???0276nobodyさん
02/04/24 10:40ID:zrCVc2f4MySQL-Max(InnoDB)はトランザクションに対応してますよ。
コンパイル時にそう設定されているだけなので、MySQLとMySQL-Maxは
お好みに合わせて使い分けることになると思います。
0277nobodyさん
02/04/24 10:42ID:zrCVc2f4ストアド・プロシージャーがなくても困ることはほとんど無いですよ。
それに頼る設計方針を見直すべきだよ。
0278nobodyさん
02/04/24 10:46ID:zrCVc2f4ベンチマークにエントリさえもされないPostgreSQLの立場って。
0279nobodyさん
02/04/24 12:48ID:PorNOKJ/PostgreSQL使いましょう。
まあ、MySQLの劣っているところも理解できない厨房であれば、
利用もやむを得ないけど。
>>276
トランザクションを利用すると、劇的に遅くなるよ。
一気に処理が複雑になるからね。だからMySQLの特徴が消える。
>>277
複雑な演算で速度出すときには必要です。
0280270
02/04/24 14:51ID:YiGTDcvnありがとうございます。お手数を感謝いたします。
入力した文字コードもEUCなんですが、PostgreSQL Users-ML に
ポストするしかないのですか。トホホ。
0281nobodyさん
02/04/24 15:18ID:???0282nobodyさん
02/04/24 15:44ID:PorNOKJ/商用利用は有料。詳細は調べてくれ。
0283nobodyさん
02/04/24 17:40ID:zrCVc2f4GPL?
0284nobodyさん
02/04/24 17:42ID:zrCVc2f4何か資料ありますか? 無いんでしょ?
また、トランザクション入れてもほとんど変わらないですよ。
また、複雑な演算処理の例を教えてください。
0285nobodyさん
02/04/24 17:44ID:zrCVc2f4WEB+DB PRESS の vol.4 の記事読んでみな。
0286nobodyさん
02/04/24 17:45ID:zrCVc2f4Delphi6 や Kylix や C++Builder6 のdbExpressでは、MySQLへの接続は
サポートされているけど、PostgreSQLへの接続はサポートされていない
んですよ。なんとかしてくれ。
0287nobodyさん
02/04/24 18:29ID:zrCVc2f4What is the most popular RDBMS? Is it MySQL?
約3,410件
What is the most popular RDBMS? Is it PostgreSQL?
約2,860件
MySQL beats PostSQL. :-)
0288nobodyさん
02/04/24 20:36ID:/PnzmLOGるって簡単に書けないのでしょうか ?
例えば、社員名簿のアプリケーションで、社員番号と社員データを元に更新/挿入
をやりたいんです。今は、更新してみて更新されたタプルが 0 だったら、改めて
挿入してるんですけど、1つの SQL で書けないのでしょうか ?
0289nobodyさん
02/04/24 20:43ID:???0290288
02/04/24 21:19ID:???でって...、いくわけないですよね。ほとんど数人でしか使わないローカ
ルデータベースだしねぇ。まあ、Ora8x でサポートしていないぐらいだか
ら、大体の DB じゃサポートしてなさそうですね。心おきなく、今までの
方法 (Update + Insert) で行きます。ありがとうございました。
0291nobodyさん
02/04/25 11:06ID:???0292nobodyさん
02/04/25 14:58ID:e1QGMeHXストアド・ファンクションをPLPGSQLで書けば代わりになります。
1.挿入/更新対象をSELECTする
2a.存在 →
2b.非存在 →
PostgreSQLオブジェクトは複雑になりますが、処理速度は向上します。
プログラム側で2回のクエリーが1回にで済むからです。
またプログラム側の処理が単純になりますね。
0293nobodyさん
02/04/29 00:48ID:oAtRhIR1関係ないけど、Ora系の業務だと、ストアドで10Kとかあるんだよね、よく。
デバッグ環境ももろくにないから泣きそう泣きそう…。
0294nobodyさん
02/05/03 21:41ID:/0wZrz3pPostgresのファンクションって、Oraなんかと違って、
コンパイル(?)して無いよね?
実行時のスピードって、向上してない気がするんだけどな、俺。
それとも単に、俺のクエリがへぼイだけ?
#久々に覗いたら、にぎわってるなココ。
0295名無しさん@XEmacs
02/05/03 22:11ID:???特に処理が重くなりそうな場合、Cで書くのもいいと思いますヨ。
0296nobodyさん
02/05/12 03:17ID:bKfXEgEZpostgresのテーブルの定義書を出力しても、
出力されたExcelファイルの中に、外部キーに関する情報が含まれていません。
これは、CSEのバグ(仕様?)なんでしょうか?
あるいは自分の設定かなにかが違うのでしょうか?
0297nobodyさん
02/05/12 04:17ID:RwG45MrUMySQLにはreplace intoというのがあるよ
0298nobodyさん
02/05/12 20:30ID:jWhbjITOcreate table moto (c2 int,c1 int);
create table shin as select c1,c2 from moto;
drop table moto;
alter table shin rename to moto;
0299nobodyさん
02/05/12 22:38ID:q4IRLeqO制約が消えませんか?
0300nobodyさん
02/05/13 14:00ID:bpGvMvHbINSERT INTO shin SELECT c1,c2 FROM moto
でいいんじゃないの。
ALTER TABLEで地道に制約付け直すでも良し。
SELECTで指定できるのに列の順序が気になる程度のもんなら、
別に大した設計してないだろ、と煽ってみるテスト(w
0301299 (!=249)
02/05/14 01:45ID:VEi3hWaX煽りに乗ってくれてありがとう。
0303nobodyさん
02/05/14 10:27ID:dvbYPP4RCREATE VIEW v_name AS
SELECT * FROM TABLE WHERE start_date<='TODAY'
開始日が本日もしくは本日以下の範囲を取得するというものです。
通常のselectでは問題なく取得できますが、
例えば日付が明日、明後日となるとその範囲のデータが表示されな
くなります。
で、viewをまた作成しなおすと表示されます。なんで??
TODAYはview作成時の日付で固定となってしまうのでしょうか?
お願いします。
0304名無しさん@XEmacs
02/05/17 09:54ID:???todayとかnowは、作成時点での日時に固定されます。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/datatype-datetime.html
0305nobodyさん
02/05/17 11:03ID:fkHus637どうすればよいでしょう。
: 専用データベースクライアントを作る
最近じゃ JDBC とかデータベースを簡単に利用できる API があるので、いいと思う。
: Web 上で、ファイル送信のフォームを用いてCSVファイルを送信してもらい、しかも PHP の system 関数を起動させる
スクリプトを書く
なぜか、俺がやってみたところ、起動しなかった。「system('./thread.rb > /dev/null &'); 」
0306名無しさん@XEmacs
02/05/17 20:21ID:???0307nobodyさん
02/05/19 18:43ID:khVJsytmここを参考にソースをコンパイルしてみることにしました
PHPやpsqlからは、操作できたので、postgreSQLはきちんとインストールできてるものと思ってました。
しかし、いざコンパイルしてみると
dbconn.c:6:22: postgres.h: そのようなファイルやディレクトリはありません
と出されたので、postgreSQL7.1.3のソース元から、postgres.h をコピーしてきて
またコンパイルしてみると、更に何かが足りないとでます。
ムカツイタので、includeディレクトリィーごと、全部、パスが通ったところにインストールしたんですが、それでも、最終的に
/usr/local/pgsql/include/postgres.h:48:24: utils/elog.h: そのようなファイルやディレクトリはありません
/usr/local/pgsql/include/postgres.h:49:26: utils/palloc.h: そのようなファイルやディレクトリはありません
とゆうのがでます。何かインストール段階で間違ってるところがあるでしょうか?
インストール手順は、普通に、./configure make make install です
0308nobodyさん
02/05/19 18:49ID:a+gm9DOhJavaでできないんかな?
0309名無しさん@XEmacs
02/05/19 22:08ID:???> C言語からPostgreSQL(7.2.1)を操作したくて、
> postgreSQL7.1.3のソース元から、postgres.h をコピーしてきて
そこがダウトです。
ソースから手で取ってくるのではなく、インストールした /usr/local/pgsql/include に
あるはずです。
そのプログラムをコンパイルするときに、gcc に -I/usr/local/pgsql/include という
オプションを追加してください。
0310名無しさん@XEmacs
02/05/19 22:23ID:DDSBJIFh7.2のjdbcからは、ResultSetクラスにgetLastOID()というメソッドが
追加されています。これでお望みの機能を得られるかと思います。
0311308
02/05/19 23:39ID:a+gm9DOhどうもです。
org.postgresql.ResultSet のドキュメントに目を通さずに、
java.sql.ResultSet のドキュメントばっかり眺めてたから、
てっきり不可能なことかと思ってた。
0312nobodyさん
02/05/21 06:09ID:A7Xa03Vwどうもありがとうございます。
実際コンパイルするときは、gcc -o test1 test1.c -I$POSTGRES_HOME/include -L$POSTGRES_HOME/lib -lpq -lnsl -lcrypt こんな感じでコンパイルしています。
(環境設定で、POSTGRES_HOMEのパスは設定してあります)
それで、/usr/local/pgsql/include を見てみると以下の構成になっています。
c.h ecpgerrno.h ecpgtype.h lib libpq libpq-int.h pg_config.h postgres_ext.h pqexpbuffer.h sqlca.h
config.h ecpglib.h internal libpgeasy.h libpq-fe.h os.h pg_config_os.h postgres_fe.h sql3types.h
見てみると、コンパイルする時に必要な、postgres.hや、utils/ 以下のディレクトリなんかも見当たりません。
実際 http://www.atmarkit.co.jp/flinux/rensai/postgres03/postgres03.html ここのページの真中当たりを見てみると、
include "postgres.h"
include "libpq-fe.h" が必要と書いてあります。libpq-fe.hはあるのですが、postgres.hがないことから、>>307のような行為をしてみたのです。
0313名無しさん@XEmacs
02/05/21 21:26ID:???おいらは postgres.h インクルードしてないよ。
libpq-fe.h はインクルードしてるけど。
0314名無しさん@XEmacs
02/05/21 21:27ID:???0315312
02/05/22 12:56ID:8kY9gZMf解決しました。
インストール段階で、明示的に
gmake
gamke install
gmake install-all-headers
と打ち込んでやる必要があったみたいです
このように打つことで、全部のヘッダファイルがインストールされたみたいです。
いろいろアドバイスどうもでした。
0316nobodyさん
02/05/27 11:39ID:3Jjx1/hO試してみたんだけど、これって作成した関数を普通のSELECTで使えないものなの?
サンプルだとわざわざFETCHしてるし。やりたいのは
CREATE OR REPLACE FUNCTION gethoge(int4)
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR;
BEGIN
OPEN ret FOR SELECT * FROM hoge WHERE c1 > $1;
RETURN ret;
END;
' LANGUAGE plpgsql;
SELECT gethoge(4);
ってしたら複数行返してくれると嬉しいんだけど。SQL関数のSETOF使うと
妙にキャストしないと駄目だし。誰か詳しい人情報きぼんぬ。
0317nobodyさん
02/05/29 02:44ID:VbNebk4ICREATE OR REPLACE FUNCTION gethoge()
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR := ''r1'';
BEGIN
OPEN ret FOR SELECT * FROM hoge;
RETURN ret;
END;
' LANGUAGE plpgsql;
BEGIN;
SELECT gethoge();
FETCH ALL IN r1;
END;
で、本当は>>316に書いたように
SELECT gethoge();
だけで結果を取得したいんだが、詳しい人引き続ききぼんぬ。
あるいはJDBCから
BEGIN;
SELECT gethoge();
FETCH ALL IN r1;
END;
を実行した結果をResultSetに入れる方法でもOKです。
0318nobodyさん
02/05/29 04:06ID:???CREATE OR REPLACE FUNCTION gethoge()
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR;
BEGIN
OPEN ret FOR SELECT * FROM hoge;
RETURN ret;
END;
' LANGUAGE plpgsql;
0319nobodyさん
02/05/29 04:07ID:???import java.sql.*;
public class test {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
} catch (Exception ex) {}
try {
Connection conn =
DriverManager.getConnection(
"jdbc:postgresql://localhost/iruka",
"iruka",
""
);
Statement stmt = conn.createStatement();
ResultSet rs;
0320nobodyさん
02/05/29 04:08ID:???rs = stmt.executeQuery(sql);
rs.next();
String cursorName = rs.getString(1);
sql = "fetch all in \"" + cursorName + "\"; ";
rs = stmt.executeQuery(sql);
int c1;
String c2;
while(rs.next()) {
c1 = rs.getInt("c1");
c2 = rs.getString("c2");
System.out.println(c1 + " : " + c2);
}
sql = "end;";
stmt.execute(sql);
rs.close();
stmt.close();
conn.close();
}
catch(SQLException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
0321nobodyさん
02/05/31 15:27ID:VOysfiXSどうしたらいいんですか。Version は6.5.3です。
調べた範囲では消すとまずそうなのですが....
引き継いだシステムなので、バージョンアップとかも
ためらわれる...
0322nobodyさん
02/05/31 19:22ID:???あるいは pg_dumpall して $PGDATA 削除して initdb し直し。
0324nobodyさん
02/05/31 22:21ID:???データ消して作り直しってことですヨ!
バックアップ取って。
気をつけてくださいヨ。おながいします。
032518:01 2002/06/02
02/06/02 18:05ID:KL9d9Dk5pingもとおらん・・・
cvsupしようと思ったのにぃ〜
032618:14 2002/06/02
02/06/02 18:19ID:KL9d9Dk50327nobodyさん
02/06/04 15:01ID:???これって全く求人ないんだけど、皆さんは何の仕事してるの?
WEB系って単純なHTMLの単価が低い仕事ならよく見かけるけど、
そもそも金のあるクライアント・つまり金になる仕事で
フリーのRDB使うような仕事って成り立つものなの?
0329nobodyさん
02/06/04 21:26ID:???人間に金かけられるようになると思うのだが。
0330nobodyさん
02/06/14 23:50ID:???勉強しているんだが 何処を探してもphpの記述しか無いような気がするんですが
DBD::Pg は 一般的ではないんでしょうか?
ttp://member.nifty.ne.jp/hippo2000 は見たけど これくらいしか無いような気がする
あと具体的な質問
新しいtableを作るには
my($sql) = "CREATE TABLE suitedb (clumn_1 varchar(16))";
などとして
$dbh = DBI->connect("dbi:Pg……
とコネクトして
$que = $dbh->prepare("$sql");
$que->execute();
$que->finish();
とするように SQL文を丸々書くんですよね。
ttp://web.arena.ne.jp/suite/support/manual/cgi-db
0332nobodyさん
02/06/15 08:03ID:ovPoj3shマニュアル(man)に詳しく書いてある。
$dbh->prepare ではなくて $dbh->do("CREAT TABLE ...");を使うほうが、
よいと思われ。結果が返って来るわけでないし、DDLは自動でCOMMITされる。
あと $dbh->disconnect; を忘れるとエラーが出る(気がした)
とにかく試すことだ。
0333初期不良
02/06/15 20:17ID:Imc6xOenPostgreSQL ですけど、ML とかに書いてあった通り、
psql -E で \d とか \d table とかやって一応フィールド名と
フィールドタイプの取得はできるようになりました。
けど、プライマリキーがどのフィールドかってのがわからないんです。
pg_class とかトリガーとか調べれば... とか思っていろいろ調べて
みたんですが力尽きてしまいました。
プライマリキーがどのフィールドかわかる SQL って誰か書いた
ことありませんか?
0334nobodyさん
02/06/16 02:06ID:8EBDLVWp「aaa > bbb > ccc」みたいに現在地を表示させるには、
postgresだと、データをどうやって持たせるのが得策(定石?)なのでしょうか?
0335332
02/06/16 10:42ID:IP4vfeht反則技としては pg_dump を用いて、CREATE TABLE しているところを
確認すればよい。以下のような文が見つかるはずだ。
Constraint "initial_error_no_pkey" Primary Key ("initial_error_no")
>>334
自己結合(プ
0336nobodyさん
02/06/16 12:06ID:O6K9M+cM3階層のフィールドを用意するだけ
0338初期不良
02/06/16 17:41ID:???select indkey from pg_index
where indisprimary=true and indrelid=(
select oid from pg_class
where relname = 'tablename'
);
これで int2 の配列が帰ってきて何番目のフィールドが
プライマリキーかがわかる。あってる?
0339初期不良
02/06/16 17:44ID:bMMKPpy60340初期不良
02/06/17 09:59ID:???よく見たら \d tablename で出てくるインデックス(tablename_pkey 等)を
調べればわかることだったんだな...
\d tablename_pkey とすると出てくる。
unique の場合は tablename_fieldname_key のようなインデックスができるので
\d tablename_fieldname_key
とすれば unique なフィールドがわかる。
けど、テーブル名から調べる場合は前に書いたやり方の方が良さそうだな。
unique の場合はこうすればよし?
select indkey from pg_index
where indisunique=true and indisprimary=false and indrelid=(
select oid from pg_class
where relname = 'tablename'
);
0341質問君Φ
02/06/19 11:01ID:qIh4juAyinsert delete updateの際に欠番なしでシーケンシャルに増減するような奴
作ってみたんだが、どうしても無駄な番号アトリビュートを使って
orderbyしてupdateするという陳腐な方法しか思いつかん
もっとスマートに出来るはずだ。
よろしこ
0344質問君Φ
02/06/21 13:36ID:???そう言うこと
0346nobodyさん
02/06/25 03:48ID:XBDHwftNうとしています。とりあえず以下のようなものができあがりましたが、もっと簡
単で効率のよい方法ってありますか?
selectrow_arrayref()よりもこの場合に適したものがあるんじゃないかと思って
訊いてみました。
use DBI;
$string = "文字列";
$dbh = DBI -> connect ("dbi:Pg:dbname=testdb", "a");
if ($dbh -> selectrow_arrayref("select * from images where url = '$string'")) { print "ある\n"; }
else { print "ない\n"; }
$dbh -> disconnect;
0347nobodyさん
02/06/25 03:56ID:???もしそのあとに何かDBでするんだったらPL/pgSQLで書いたほうが
いいとは思うが、Perlからやるんだったらこうか?
my $dbh = DBI->connect(...);
my $sth = $dbh->prepare( 'SELECT 1 FROM images WHERE url = ?' );
$sth->execute( $string );
if( $sth->fetchrow_arrayref ) { # 多分$sth->rowsでも平気かな
print "ある\n";
} else {
print "ない\n";
}
$dbh->disconnect;
0348nobodyさん
02/06/26 01:44ID:WIsWhSE/なるほど。
ああ…まだまだ勉強不足…。
ありがとうございました。
0349nobodyさん
02/06/27 18:35ID:eHTNEubkphp4とpostgresqlが入ってたらまともに動くという
超簡単な環境検証用スクリプトみたいなものありませんかね?
本当に小さいものでかまわないです。
php4とpostgresqlに詳しい方であっという間に作れる方いませんか?
0350nobodyさん
02/06/27 21:37ID:fDXVhhFfまずは PHP を捨てるところからはじめよう。
0352nobodyさん
02/06/28 07:27ID:xBL4mzWk逝ってよし
0353CHANCE FOR EVERYONE
02/06/28 17:31ID:hU48lsFK費用対効果で他の媒体にこれより優れたものは無いでしょう。
長い目で見ても素晴らしいネットワークビジネスの紹介!!
私たちの参加しているネットワークビジネスは 在庫をもつ必要がなく、
製造メーカーの製品を直接広めるものです。
私たちのグループは、製造会社の製品をHPとメールという媒体も活用して、
低価格、高品質なよき製品を広めようという集まりです。
流通コストを消費者に還元して製品を広めるというこのシステムは、
何人かの識者が本などで発言しているのを読んでみると、
人間的かつ将来有効なシステムを創っていける可能性の大きいものだと感じます。
実際、有名な大会社AT&T、GM、マスターカードなども採用しだしています。
興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
0354nobodyさん
02/06/29 10:20ID:???>インターネットは使い方次第で個の力を何倍もの力に変えることが可能です。
>費用対効果で他の媒体にこれより優れたものは無いでしょう。
誰だって知ってる
>長い目で見ても素晴らしいネットワークビジネスの紹介!!
>私たちの参加しているネットワークビジネスは 在庫をもつ必要がなく、
>製造メーカーの製品を直接広めるものです。
>私たちのグループは、製造会社の製品をHPとメールという媒体も活用して、
>低価格、高品質なよき製品を広めようという集まりです。
禿げしく既出。
>流通コストを消費者に還元して製品を広めるというこのシステムは、
>何人かの識者が本などで発言しているのを読んでみると、
>人間的かつ将来有効なシステムを創っていける可能性の大きいものだと感じます。
>実際、有名な大会社AT&T、GM、マスターカードなども採用しだしています。
さらに既出のシステムだと自分で公言してるし…。
>興味のある人には、ぜひ参加して一緒にやってみましょう。
>以下のホームページでの説明も御覧ください。
ところで、2chにコピペすることは経営的に見て正解なのか?
0355libpq
02/07/01 00:16ID:???マニュアルに目を通していると、PQconnectdb()のパラメータにrequiresslを
指定できるとあったのですが、Windowsのクライアントでこのパラメータを実際に
使用している方はいらっしゃるでしょうか?
0356nobodyさん
02/07/01 10:01ID:b4xBEoiz参照してパスワード認証を行う方法を考えています。
以下のスクリプトだとうまくいくのですが…。
print "名前:\n";
$name = <STDIN>;
chomp $name;
$pwd = <STDIN>;
chomp $pwd;
$dbh = DBI -> connect ("dbi:Pg:dbname=testdb", "test_user");
$pre = $dbh -> prepare ("select password from test_list where name = '$name'");
$pre -> execute;
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
}
$dbh -> disconnect;
while文内のif文を、$dbh -> disconnect;文以下にもってくると
うまく処理されません。どうやらwhile文で使った$iは、$dbh -> disconnect;
した後は消去されてしまうようです。
$dbh -> disconnect;した後もスカラ変数や配列に代入された値を
そのまま保持する方法ってありますか?
なんか見当はずれの質問をしているっぽくて不安なんですけど…。
よろしくおねがいします。
0357初期不良
02/07/01 14:10ID:???なんだか perl な話だが、$i = $pre -> fetchrow_array
って事は array が返ってきているわけだよな?
スカラーに入れるって事はリファレンスになっちまってないかい?
password しか select してないからそれでも使えるのかもしれないけど
本当は参照の代入じゃなくて @i に入れてきちんと値のコピーを取るべきだろね。
そしたら disconnect したあともコピーした方は残ってるでしょ。
0358nobodyさん
02/07/01 15:01ID:???>while文内のif文を、$dbh -> disconnect;文以下にもってくると
の意味がよくわからんのだが、
$dbh -> disconnect;
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
}
→ $dbhをdisconnectした後にfetchrow_arrayを呼んでも無効
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
}
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
$dbh -> disconnect;
→whileを抜けた後は$iがundefになっているので比較しても意味なし
のいずれかでは?
0360nobodyさん
02/07/03 23:21ID:9oP/71OLWarning: PostgreSQL query failed: ERROR: Unable to identify an
operator '+' for types 'varchar' and 'int4' You will have to
retype this query using an explicit cast in ***.php on line ***
と出て先へ進めません。何か間違ってますでしょうか。
■ このスレッドは過去ログ倉庫に格納されています