VC++でSQL文に条件分岐処理のためのCASE式を埋め込みたいのですが、
詳しく書いてあるHPなどご存知の方、
教えてください。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

質問


分岐とはどのような事を考えていますか?

VC++でSQLを実行する時はなにを使っていますか?
ADOですか?
ODBCですか?

データベースには何をお使いですか?

状況が今一つ掴めませんので補足願います。

この回答への補足

yanmaaさん、ありがとうございます。
ODBC接続で、DB2使っています。
で、その、、、
できちゃったんですよ。

CASE a.xx WHEN 0 THEN b.xx ELSE ' ' END,

と書けばいいみたいです。
その他に書き方ご存知ですか?

補足日時:2001/10/26 17:27
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qweb2camをダウンロードしたらPCが終了できな

ネット上のフリーソフトウェアweb2camをダウンロードして起動したら、web2camが終了できない上にmac book air 自体も強制終了すらできなくなりました。web2camがどういうソフトかもわからぬままにDLしたから・・・・。。どうしたらPCを終了させれるでしょうか・・

Aベストアンサー

web2camをとりあえずアンインストールしてみては?

QVC++でSQLへSELECT文を送ったのですが…

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <string>
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
char a;

int main(void)
{
String^ str;
SqlConnection^ sqlConn = gcnew SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\○○\\test.mdf;Integrated Security=True;User Instance=True");
sqlConn->Open();
str = "Select test FROM Table1";
SqlCommand^ sqlCmd = gcnew SqlCommand(str,sqlConn);//
SqlDataReader^ ExecuteReader ();
sqlConn->Close();
}

int sub()
{
a = ExecuteReader;
printf (a,"表示テスト\n");
return 0;
}

の構文でSQL ServerへSELECT文を送り、そこで得た結果を
表示しようと思ったのですが

1>select-test.cpp
1>.\select-test.cpp(28) : error C2065: 'ExecuteReader' :
定義されていない識別子です。
1>.\select-test.cpp(29) : error C2664: 'printf' : 1 番目の引数を
'char' から 'const char *' に変換できません。
(新しい機能 ; ヘルプを参照)
1> 整数型からポインタ型への変換には
reinterpret_cast、C スタイル キャストまたは
関数スタイル キャストが必要です。


と2つのエラーを返されてしまいました。

開発環境は
OS XPのHomeEditon
Visual C++ ExpressEdition
SQL Server 2005 Express
です。
よろしくお願いします。

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <string>
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
char a;

int main(void)
{
String^ str;
SqlConnection^ sqlConn = gcnew SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\○○\\test.mdf;Integrated Security=True;User Instance=True");
sqlConn->Open();
str = "Select test FROM Table1";
SqlCommand^ sqlCmd = gcnew SqlCommand(str,sqlCo...続きを読む

Aベストアンサー

ごめんなさい ・・・ SqlCommandにExecuteはありませんね

SqlDataReader^ exeReader = sqlCmd->ExecuteReader();
ですね
subの呼び出しを
sub( exeReader );
とします

関数sub側は
void sub( SqlDataReader ^objRd )
{
  // DBより取得したレコードを取得する
  while( objRd->Read() ) {
    Console::Writeln( L"{0}", objRd[0] );
  }
}
といった具合にします

C++/CLIでは printfより Console::WriteやWiltelnのほうが親和性がいいでしょう

QCAMの仕事のミス

1ヶ月前から アルバイトでCAMの仕事をするようになりました。 CAMで 図面を描いて 鉄板のカットの仕事です。図面は 手書きやCADで描いたものを 入力するのですが その人その人で くせがあるのも知らず 些細なミスが 出ます。。。小さな会社なので 私のミスが そのまま 不良品状態です。 CAMの仕事をしている みなさんは どうやって ミスをなくすように工夫しているのですか??

Aベストアンサー

再び書き込みです。
ある意味では
CADの仕事もCAMと同じだと思います。
図面に忠実にプログラムしたら不良品となった!
この場合、、、
図面が間違っていたでは済まされないと思います。
当然、お金にも係わってきます。
以前、働いていた会社では
手書きの工作図を書いていました。
(アナログ的なCAMですね。。。)
図面に忠実な工作図を書いたら
不良品が出来上がりました。;^_^A
上司には
「図面なんて人が書いたものだから
 まずは図面のチェックから」と起こられました。
当時は
「何で怒られなきゃなんないんだ!」と思いましたが
CADの仕事はCAMの仕事を知って、、、
CAMの仕事はCADの仕事を知って、、、
NCオペレーターの私は
CADとCAMの仕事をしって、、、と思っています。
詳細な現場作業を知らない
今の上司からは
評価されないかもしれませんが
私なりに頑張るだけです。
お互い頑張りましょう~(-_-)ウーム

Qvc++6.0 と vc++2500

vc++6.0で

ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

となっていてコンパイルできていたのですが

2005にしたら
コンパイルできません
どうしたらコンパイルできますか

6.0と2005の違いを知るには何を読んだらいいでしょうか?

Aベストアンサー

std::ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

としてみてはいかがでしょうか。

QCAM作業者(NCプログラム作成)とは?

転職活動をしている者です。
金型の製造において、3DCAD/CAM使用においてのCAM作業者についての質問です。
この職務に就いている方にお聞きしたいのですが、
この仕事内容とは結論から言ってどんな仕事をするんでしょうか?
色々独自に調べてはいるんですがどの段階の仕事をするものなのかと思いまして…

1)単純にCADでモデルを作り、それをCAMにコンパイル?して
 NCプログラム化するという作業なのか。

2)調べているとCAMだけではなくC/C++でもプログラムは作成出来る様です。
 プログラム言語を用いてNCプログラムを作成し、それを機械用コード(Gコード等)に
 CAMを用いて変換できる様ですがこういう仕事ですか?
 マクロとはこれと関連した作業なんですよね?

3)上記2つの事を時と場合によって使い分ける感じですか?

1)だった場合CAMというよりはCADスキルが求められると思います。
 当然仕事をする上では機械の先端工具の軌跡も重要でありますが…
 最終的には作業者に修正作業が発生する事もあるとは思います。

2)だった場合CAD/CAMも使えないといけないですがさらにプログラム言語が必要になります。
 
まぁ何となく2)は無くても良い知識な気もしますが(ソフトウェアー開発側知識??)
いまいちよく仕事内容が理解できませんでしたので…
それでは曖昧気味な質問ですがよろしくお願いします。

転職活動をしている者です。
金型の製造において、3DCAD/CAM使用においてのCAM作業者についての質問です。
この職務に就いている方にお聞きしたいのですが、
この仕事内容とは結論から言ってどんな仕事をするんでしょうか?
色々独自に調べてはいるんですがどの段階の仕事をするものなのかと思いまして…

1)単純にCADでモデルを作り、それをCAMにコンパイル?して
 NCプログラム化するという作業なのか。

2)調べているとCAMだけではなくC/C++でもプログラムは作成出来る様です。
 ...続きを読む

Aベストアンサー

こんにちわ、No.1です。

>製品サンプル品があった場合・・・

お礼、ありがとう御座いました。

私の推測ですが、質問者さんは初心者?だと思います。

始めから、プログラムだけの業務はできません。

実際にNC工作機を体験して、始めての人に教えるぐらいのスキルを要求されます。

すなわち、3年以上は現場の工作機械のオペレーターをすることになると思われます。

オペレーターと名は良いですが、実際には毎日同じ仕事を繰り返しロボットのように
時には、交代制で仕事をすると思います。

体力的にも、又機械を壊さないように慎重に仕事を進めることが重要視されます。

1台、何千万円もする工作機なので精神的にも負担はかなりあります。

実際は、その会社で仕事をしないと内容はわかりませんが・・・

ご参考まで。

QVC++5.0とVC++6.0の違いは?

何がどう変わったんでしょうか?
なんとなく使っているだけなのでぜんぜんわかりません。

簡単にんでいいんで思いつくことを書いてもらえるだけでもうれしいです。


よろしくお願いいたします。

Aベストアンサー

MFCのバージョンが違います。MFCのリファレンスを見れば6で増えた機能が分かります。

例えばブラウザを簡単に作れるCHtmlViewは6でないと使えません。

QCAMについて

CAMでよくミッドレンジとかハイレンジなど耳にしますがどういった違いがあるのでしょうか?またこれからのCAMに求めるものは何でしょうか?

Aベストアンサー

ミッドレンジとハイレンジの違いですか。

実際、特にカテゴリ分けされているわけではないし、
ものすごくグレーな部分もありますので、私なりのざっぱな切り分けです。

ミッドレンジ
・値段が比較的(逃げ口上ですが)に安い
・刃物に優しくない
・削り残しが出来る部分は自分で面倒を見ないといけない
・安いPCでもそこそこ動く。
・なだらかな曲面を削ると、平面の集合の様に(私のところでは、ミラーボール現象といってますが)なる。
・操作が簡単。
・中小零細企業に密着

ハイレンジ
・値段が高い
・ハイスペックなPCを必要とする。
・操作が煩雑で習得に時間がかかる。
・なだらかな曲面加工がきれいに出来る。
・保守料という名の年間使用料で、PCが何台か買えてしまう。
・最新の高速加工機に対応できるが、古い機械向けのパスは苦手。
・最先端大企業しか眼中にない

なところでしょうか。
まだまだ出てくるとは思いますか・・・

「これからのCAMに求めるもの」ですか。
こんなご時世で、設備の更新が望めない中小零細企業のために、古い機械で、最新の機械並の高速加工(刃物が高速で動く必要はなく、高効率で加工時間の短縮が出来るという意味での)が出来るようになるといいですね。
後は、周りに民家が多くなってきて、肩身の狭い思いをしている中小零細企業のために、加工時の騒音が少ない加工パスが出るといいですね。
こういう発想を理解してくれるのは、やっぱりミッドレンジ(というよりローレンジ?)CAMメーカーだったりしますね。

零細企業に勤める1個人の意見ですので、偏ってますが、参考になれば。

ミッドレンジとハイレンジの違いですか。

実際、特にカテゴリ分けされているわけではないし、
ものすごくグレーな部分もありますので、私なりのざっぱな切り分けです。

ミッドレンジ
・値段が比較的(逃げ口上ですが)に安い
・刃物に優しくない
・削り残しが出来る部分は自分で面倒を見ないといけない
・安いPCでもそこそこ動く。
・なだらかな曲面を削ると、平面の集合の様に(私のところでは、ミラーボール現象といってますが)なる。
・操作が簡単。
・中小零細企業に密着

ハイレンジ
・値...続きを読む

QVC++6.0からVC++.NETへの変遷について

VC++がようやく分かり出したこの頃ですが、今日本屋に立ち寄ったら、なっ なんとVC++の本がほとんど無くなり、代わりにVC++.NETとVC#ばかりになっていました。

C#はVC++とは違うと聞いていたのですが、読んでみるとVC++.NETもかなり違ってました。
(かなり違うという表現は、各人の状況により意見が異なると思いますが)

私のような本を見ながらコードを打って勉強している初心者にとって、VC++.NETの本ではVC++6.0を動かすことができません。

今から勉強する人や本を買って勉強しようとしている人あるいは、コンパイラを手に入れようとしている人はVC++.NETに移行してしまわざるを得ないのでしょうか?

すでにVC++6.0を十分活用出来ている人も、時代の流れでNETやC#を勉強していかなければならないのでしょうか?

つまり、単なるバージョンアップとは一線をなす変更がなされたということなのでしょうか?

良くご存知の方見解をお願いします。

Aベストアンサー

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したものが無駄になることはありません。
たぶん、.NET環境の開発には、C++よりもC#やVB.NETを利用することが
多くなると思いますが、C++を理解していることはプラスにはなってもマイナスには
なりませんので、頑張って下さい。

.NET関連のサイトを2つご紹介しておきます。ご参考に。
http://www.microsoft.com/japan/msdn/library/default.asp
http://www.atmarkit.co.jp/fdotnet/index.html

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したもの...続きを読む

QエクセルVBAでSelect...Caseの構文

エクセルVBAで
■Select...Caseの構文は、次(構文1)のようになっているとのことですが、
構文2のような、意味でネストして使う使い方は許されているのでしょうか。
(参考 QNo.1965604 の#7に,#8に関係したところをお聞きします。)

(構文1)
Select Case 変数
 Case 値1
   変数が値1の時の処理
 Case 値2
   変数が値2の時の処理
 Case Else
   他のCaseに合わない場合(その他)の処理
End Select

(構文2)
Select Case 変数a
 Case 値1
   変数aが値1の時の処理
      Select Case 変数b
           Case 値1
           変数bが値1の時の処理
           Case 値2
           変数bが値2の時の処理
      Case Else
       変数bが、他のCaseに合わない場合(その他)の処理
End Select

 Case 値2
   変数aが値2の時の処理
 Case Else
   変数aが、他のCaseに合わない場合(その他)の処理
End Select

エクセルVBAで
■Select...Caseの構文は、次(構文1)のようになっているとのことですが、
構文2のような、意味でネストして使う使い方は許されているのでしょうか。
(参考 QNo.1965604 の#7に,#8に関係したところをお聞きします。)

(構文1)
Select Case 変数
 Case 値1
   変数が値1の時の処理
 Case 値2
   変数が値2の時の処理
 Case Else
   他のCaseに合わない場合(その他)の処理
End Select

(構文2)
Select Case 変数a
 Case 値1
   変数aが...続きを読む

Aベストアンサー

質問 1965604 で回答したものです。「メチャメチャになっている」と書いた箇所があり、そのことと本質問が関連しているのかもしれません。もしそうなら、言い訳になりますが、
OKWAVEの補足をパッと見て、OKWAVEではインデントが崩れるのでネストを見抜けず、SelectCaseの視点(変数)が変わっていたので誤解したようです。Case分のネストも最近使わなかったので。
CASE文のネストが可能かどうかは、既出回答でお分かりになったと思います。
複数視点からの判別はプログラム表現(コーディング)上難しいもののように思ってます。
それぞれ(変数aと変数b)を個別に条件を満たすかどうかのサイン(フラグ)0,1を作って(するとサインの組み合わせができますが)、11、10、01、00の各パターンを判別(例えばネストなしのCASE文で)して、処理を変えたような経験もあります。
質問 1965604 では、他の箇所の補足振りから見て、CASE文のネストまで使われるレベルの方とは思わず、失礼しました。

QVC++6.0からVC++.NET2005へ移植

VC++6.0で作成したプログラムをVC++.NET2005に移植しました。
ビルドを行うと『fatal error LNK1104:ファイル'mfc42.lib'を開くことができません。』のエラーが出てしまいます。
ソリューションのプロパティを見てもどこで「mfc42.lib」の参照を定義しているのか分かりません。
どこで「mfc42.lib」の参照を定義しているのか教えてください。また、対策を教えてください。

Aベストアンサー

VC++.NET2005のエディションをお教えください。
Express Editionでは、リソースエディタがない、
ATL, MFCが使えないなどの制限がいくつか存在します。

また、VC2005などでは.NET Frameworkの開発が前提となっており
WIN32APIを使用する場合などについては、Platform SDKを
インストールする必要があります。


人気Q&Aランキング