トップページ⇒tech
56コメント15KB

ODBCプログラミングスレッド

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
一つくらい在ってもおかしくないかと
0002デフォルトの名無しさんNGNG
う〜ん。。。
0003デフォルトの名無しさんNGNG
JDBCもきぼん
0004デフォルトの名無しさんNGNG
DB プログラミング一般にすりゃ良いじゃん。
0005デフォルトの名無しさんNGNG
>>4
ODBC APIを利用したプログラミングとか
00064NGNG
>>5
いや、>>3 で JDBC とか出てきたからさ。
0007デフォルトの名無しさんNGNG
あるテーブルのすべての列を表示したいのですが、
カラムAとカラムBはくっつけて表示したいのです。
このばあい残りのカラムをワイルドカードなどで指定する
ことってできないでしょうか?

SELECT
A || B AS NEWNAME,
C,
D,
E
FROM
TABLE
0008お願い名無しさんNGNG
4(DBプログラミング一般)に賛成だけどだめなの?
0009デフォルトの名無しさんNGNG
>>8
別にかまわないと思うけど、プラットフォームによって言語変わってくるからものすごい幅広くなるかと
0010デフォルトの名無しさんNGNG
>>7
何SQL?
環境書いてもらわんとさ
00117NGNG
Oracle8iです
0012デフォルトの名無しさんNGNG
9は?
0013デフォルトの名無しさんNGNG
>>12
Oracle9i は?ってことか?
それとも >>9 はどこだ?ってことか?
0014名無しさんNGNG
基本的な部分,たとえば不定形のHTML文書を
データベースに格納する掲示板という仕様があるけど、
これは正しい設計かどうか。なんて意見聞きたいです。
0015デフォルトの名無しさんNGNG
>>10
聞くだけ聞いて答えてやらんのか?(笑)
2chらしくてよいが。
>>11
無理
00167NGNG
ありがとうございます。
面倒ですね
0017デフォルトの名無しさんNGNG
>>15
常駐してるわけじゃないからそんなにあせんないでよ

>>16
OracleのSQLはわかんない
0018デフォルトの名無しさんNGNG
やっぱりネイティブのインターフェイスが一番
OCIでやりなさい>>7
0019デフォルトの名無しさんNGNG
ODBCAPIレベルでプログラムしている人います?
0020デフォルトの名無しさんNGNG
>>13
9iのことです。
0021デフォルトの名無しさんNGNG
で、9iか、そうでないか、がなんだって言うんだ?
0022デフォルトの名無しさんNGNG
C言語で、net8経由で別マシンのデータベースにつなげたいのですが、うまくつながりません。
プリコンパイラはProc/c++ を使っていてマニュアルにかいてるとおりにやってみたのですが。
char username[32];
char password[32];
char db_string[50];
EXEC SQL DECLARE DB_NAME DATABASE;

EXEC SQL CONNECT :username IDENTIFIED BY :password
AT DB_NAME USING :db_string;

こんなふうにしています。db_stringにはnet8で設定したサービス名を
入れてます。
他になにか設定とかいるのでしょうか?ご存知の方教えてください。
データベースはOracle8iです。
0023デフォルトの名無しさんNGNG
dBASE IV形式の仕様が欲しいんですけど
どうやったら入手できますかね?
APIでドライバを操作したいんですけど対応しているSQLやフィールトの細かい仕様がわからない
0024デフォルトの名無しさんNGNG
>>22
クライアント側はちゃんと設定しました?
SQL*Plusなんかでちゃんと接続できますか?
0025デフォルトの名無しさんNGNG
>24さん
SQL*Plusは接続できます。SQL*Plusの接続と同じユーザー名、パスワード、
ホスト文字列(db_string)を設定したのですが。
0026デフォルトの名無しさんNGNG
>>25
うーん、じゃぁわからない。
そんな所で詰まったことないけどなぁ。だいたいそれでさくっと繋がるはず。
エラーとかは確認してみた?
0027デフォルトの名無しさんNGNG
このぐらい自分ひとりで解決してよ。
この程度のことなんてだれだって日頃から経験してるんだからさ
0028デフォルトの名無しさんNGNG
>>22
sqlcaは何ていってるの?
002922NGNG
sqlcaは、TNS: サービス名を解決できませんでした。 とかえしてきます。
原因かもしれませんが、ProC/C++のバージョンが8.0.5で、Oracle8iクライアント
のバージョンが8.1.5なので、net8とProC/C++が別フォルダにあって
TNSNAMES.ORAの設定を見れてないのでは?と・・・。
0030デフォルトの名無しさんNGNG
>>29
いや、全く持ってその通りでしょう。
003122NGNG
どうもすいません。解決しました。8.0.5のnet8をいれて接続できました。
めっちゃ初歩的なミスでした。
レスしていただいた方、どうもありがとうございました。
0032デフォルトの名無しさんNGNG
outerJoinを使う場合
T01.A(+) = T02.A
T02.A = T01.A(+)
のどっちが書式的にいいですか?
テーブルの若いのを左にするか、
(+)を右でそろえるか
0033デフォルトの名無しさんNGNG
ん〜・・・・
ODBCAPIでプログラムしてる人いないみたいですねぇ・・・
こまった
0034デフォルトの名無しさんNGNG
>>33
そのままORACLEスレでいいんじゃない?
環境も書かずにORACLEの質問してくる人ばっかりだし(笑)
003533NGNG
>>34
ええ、需要があるなら私はそれでもいいですけど
ODBCそのものやODBCを利用したミドルウエアの情報交換や質疑応答がしたかったもので、、、
http://www.ascii.co.jp/pb/msp/2190x/2190x.htm
この本欲しいけど高いんだよなぁ、、、
0036デフォルトの名無しさんNGNG
ODBC経由でのDBアクセスは、Ms-Access が簡単。
雛型となるクエリー(パススルークエリー)を作っておき、使うときは
1.SQLを書き換える。
 例:CurrentDb.QueryDefs("パススルー").SQL="select sysdate from dual"
2.あとはレコードセットで開いたり
 例:set rst=CurrentDb.OpenRecordSet("パススルー")
3.ローカルテーブルに落としたり
 例:Currentdb.Execute "select * into ローカル from パススルー"
コードだけでデータ引っ張るよりずっと簡単。
0037デフォルトの名無しさんNGNG
>>36
でもそれってDAOとかRDOとか使ったコードじゃないの?
DAOとかRDOも便利だけど他の開発ツールの言語に移行するのが難易なんだよね。
C関数を呼べる開発環境ならODBCAPIを理解して、それらをラップしたdllを作りたい時がある。
特に痒いところに手のとどかない、デスクトップDBなどにありがち。
Accessつかえよっていえる立場ならいいんだけどね。
003836NGNG
>>37
DBアプリの場合、客先に常駐して「午前中に帳票2表」って仕事が
多く、コーディング量の多い言語では苦しいです。(コンパイラ言語では無理?)
確かにODBCAPIをラップすれば自由にコントロールできるでしょうけど。

DBアプリをCで組むというのが、ちょっとイメージ湧かないのですが
どういうシステムを作られているのでしょうか?
教えていただけると参考になります。
(Cに悪意はないですよ。念のため)
0039デフォルトの名無しさんNGNG
>DBアプリをCで組むというのが、ちょっとイメージ湧かないのですが

バッチプログラムでは?
0040名無しさんNGNG
CGI関係。PerlなんかではDB内のデータが
半角カナ+PC98のエスケープシーケンスなんて
極悪なケースに対処できない。
もうひとつはRS485だのデジタルIOボード
を操作するのに困る。
0041デフォルトの名無しさんNGNG
>どういうシステムを作られているのでしょうか?
極端に複雑な解析処理。
工場の機器割り当てを生産量から無制限にさかのぼってアサインするプログラムを
PRO*Cで書いたことある。
0042名無しさんNGNG
COBOLのサーバーが独自の画面作成ツールで作った
画面イメージをそのまま送ってくるときに
そこから文字列を検索、抽出してDB操作ってこともある。
0043デフォルトの名無しさんNGNG
結局、こまったときはC、てことですな
0044デフォルトの名無しさんNGNG
ODBC2.xとかODBC3.0とかよく解らないんですけど(サポートされるAPIが違うのは解った)
このバージョンてどこで調べるんですか?
OSごとに普遍的なバージョンなのかな?
004536NGNG
>>39-43
なるほど、Cが活躍する部分もけっこうありますね。
TurboC 以来使ってないですが、復習しときます。
0046デフォルトの名無しさんNGNG
>>14
Exchange Serverとかがいいのでは?
0047デフォルトの名無しさんNGNG
>>14
Dominoで文書データベースにすれば管理しやすいかも
多だしかどうかは別として、そういうのも最近ではアリかな
HTML文書というデータ型ととらえて
0048デフォルトの名無しさんNGNG
age
0049デフォルトの名無しさんNGNG
>>47
notesなんてもう古いyo!
0050デフォルトの名無しさんNGNG
java.sql
でrs
から何レコードヒットしたか所得できますか?
SQLで
SELECT
 COUNT(*)
でもいいのかもしれないけど
0051デフォルトの名無しさんNGNG
>>50

http://java.sun.com/products/jdk/1.2/docs/api/java/sql/ResultSet.html

getFetchSize() というのが何となくそれらしい?
ためしてないから分からんけど。
0052やんNGNG
環境ハンドルを取得して
DBハンドルを取得して
接続ハンドルを取得して
カーソルのハンドルを取得して。。。
0053デフォルトの名無しさんNGNG
>>51
getFetchSize
は一回あたりにFetchするレコード数みたい
全部のカウントではなかったです
0054デフォルトの名無しさん01/08/27 21:10ID:VUL.XbQ6
SQLの質問させてください

テーブル
T_EMPLOYEE

カラム
EMP_NO EMP_NO SAL

とあったとき
以下のSQL文を作りたいのです

EMP_NO が10か20のときは、名前のみ、
EMP_NOが(10または20)以外なら名前と給料

DECODE CASE WHENなどで試してみたんですがうまくいかなかったです
DBはORACLE8iです
0055デフォルトの名無しさん01/08/27 21:18ID:A2WFXznU
Create View EMP_A AS SELECT EMP_NO, EMP_NAME, NULL
WHERE EMP_NO IN (10, 20);

Create View EMP_B AS SELECT EMP_NO, EMP_NAME, SALARY
WHERE EMP_NO NOT IN (10, 20);

Create View EMP_C AS
SELECT * FROM EMP_A UNION
SELECT * FROM EMP_B;
00565501/08/27 21:44ID:A2WFXznU
ゴメソViewにUnionは使えなかった。
■ このスレッドは過去ログ倉庫に格納されています