Word文書:ポータル
VCでのC言語アプリケーション++ 6.0での組み込みSQL、SQL Server 2000の環境でのデバッグは、5つのステップに分けることができます。
環境の初期化の最初のステップ。
第二段階は、プリコンパイル。
第3のステップは、コンパイルすることです。
第四のステップでは、接続されています。
第五のステップ動作。
まず、ソフトウェアのインストールと設定環境
1. "デベロッパーツール" フォルダ "C:\ Program Files \ MicrosoftのSQLサーバ" へ。
2. VC ++コンパイラー環境を初期化します。コマンドラインモードファイル「\ VC98 \ビンの\ VCVARS32.BAT」で実行します。
3. SQLServerの事前コンパイラー環境を初期化します。コマンドラインは "\デベロッパーツール\サンプル\ esqlc \ setenv.batを" 実行します。
4.にコピーされた "BINN" フォルダの内容 "C:\ Program Files \ MicrosoftのSQLサーバ\ MSSQL \ Binnの"。
設定5.VC6.0環境。詳細な構成は、3つのステップに分かれています。
①Tools->オプション - > directories->インクルードファイル:Cを追加:の\ Program Files \ Microsoft SQL Serverが\デベロッパーツール\含まれています。開発用のヘッダファイルに付属しているSQL Serverデータベースは、エンジニアリング環境に含まれています。
②Tools->オプション - > directories->のLibファイル:\ Program Files \ MicrosoftのSQLサーバ\デベロッパーツール\ x861ib:Cを追加します。開発パッケージは、プロジェクトの使用を含みます。
③Tools->オプション - > directories->実行可能ファイル:添加C:\ Program Files \ MicrosoftのSQLサーバ\ MSSQL \ Binnの。
6.オープンCMDは、登録するには、管理者として、 "VC6 \共通\ MSDev98 \アドイン\ FileTool.dllを" ます。regsvr32、
7.成功した、オープンVC6.0を促し、ツールバーを右クリックし、カスタマイズ--->アドインとマクロファイルを選択し、FileTool Developer Studioをを選択するアドインアドオン
図2に示すように、プリコンパイルさ
1)コピーESQLコンパイル済みのファイルとライブラリファイル
SQLステートメントを認識しないC言語コンパイラ・アプリケーションは、C言語に変換するプリプロセッサを通過する必要があります。SQL Serverのプリプロセッサはnsqlprep.exeです。\ BinnののSQL Serverのインストールの日付レコードでMSSQLのnsqlprep.exe。SQL Serverデータベースは、サイレントインストールのいずれかを使用している場合は、nsqlprep.exe、SQLAIW32.DLL、SQLAKW32.DLL 3つのファイルはMSSQL \ Binnディレクトリにコピーされます取る必要があります。
\ WINDOWS \ system32に:2)オペレーティングシステムのディレクトリCの下のサブディレクトリにダイナミックリンクライブラリSQLAKW32.dll、SQLAIW32.dllをコピーします。
3)埋め込みSQL Cソース・ファイルを作成Esql.c
書式#include <stdio.hに>
書式#include <stdlib.h>に含ま
EXEC SQLは、BEGIN DECLARE SECTIONを; / *メイン*変数説明スタート/
チャーDEPTNAME [22]。
チャーHSNO [10]。
チャーHSname [22]。
チャーHSsex [4]。
int型HSage;
NEWAGEをint型。
長いSQLCODE;
EXEC SQL END DECLAREセクション;主な変数の記述の/ *終了* /
/ * SQLの通信エリアを定義* /; EXEC SQL INCLUDE SQLCAは、
/ ************************************************* ************************ /
(無効)/ * C言語は、メインプログラムを開始する* / int型メイン
{
int型のカウント= 0;
文字YN; / *変数のYNのイエスの代理として、あるいは全く* /
printf( "(CS / MA / IS)部門名を選択してください:");
scanf関数( "%sの"、DEPTNAME); / * *メイン変数代入DEPTNAME /
EXEC SQL CONNECT TO学生; / *データベース接続STUDENTDb * /
FOR / *カーソルを定義するのEXEC SQL DECLARE CURSOR SX用* /
スノ、SNAME、Ssex、結果のステートメントに対応セージ/ * SX *を選択/
学生FROM
WHERE SDept =:DEPTNAME。
EXEC SQL OPEN SX; / * SXは、クエリ結果の最初の行を指しますカーソルをオープン* /
(;;)/ * *記録構造の1周期分の処理結果を設定するための/
{
EXEC SQLはSX INTO FETCH:HSNO、:HSname、:HSsex、:HSage。
/ * *ホスト変数にカーソル、現在のデータを進めます/
もし(sqlca-> SQLCODE!= 0)/ * SQLCODE!= 0、/ *失敗した操作を示し
{のprintf( "端部をデータ処理!")。
} / *ループを終了する時を決定SQLCAで/ *使用状況情報、を破ります
もし(数++ == 0)/ *それは最初の行、ヒットラインヘッドの場合* /
printf( "\ n%-10s%-22s%-4s%-10s \ n"、 "スノー"、 "SNAME"、 "Ssex"、 "セージ")。
printf( "% - 10S%-22s%-4s%-10D \ n" は、HSNO、HSname、HSsex、HSage)。
/ *クエリ結果を印刷します* /
printf( "UPDATEのAGE(Y / N)?"); / *ユーザーは、生徒の年齢*を更新したいかどうかを尋ねます/
行う{
scanf関数( "%のC"、&YN);
}
一方、(!= 'N' &&に= 'N' &&ある= &&で 'Y' = 'Y'!)。
IF(YN == 'Y' || YN == 'Y')/ *もし更新動作選択/ *
{
printf( "INPUT NEW AGE:");
scanf関数( "%d個"、&NEWAGE); / *ユーザーが主な変数の新しい時代を入力します* /
EXEC SQL UPDATE学生/ *組み込みSQL * /
SETセージ=:NEWAGE
WHERE SX OF CURRENT。
} / *すべての年齢の学生が*に現在のカーソルポイントを更新するには/
}
EXEC SQL CLOSE SX; / *カーソルがもはやSXおよび対応するクエリ結果で閉じません* /
EXEC SQLはCOMMIT WORKを; /更新が提出* * /
EXEC SQL DISCONNECT TEST; / *データベースからの切断* /
}
4)Cソース・ファイルMyEsql.c、およびバックアップを閉じ、ソースファイル拡張子「.SQC」に変更。
コマンドラインで5)ファイル名を指定して実行ESQLプリコンパイラnsqlprep.exeプログラム:
正常に実行された場合nsqlprep MyEsql.sqcは、MyEsql.cを生成するコンパイル可能なVCのプロジェクトにファイルを追加します。
6)、コンパイル、リンクおよび実行
VC ++ 6.0で、その後のC Proiectプリコンパイラで生成されたファイルには、コンパイラは、SQL Serverの実行可能プログラムへのアクセス接続を生成し、Proiectの「Win32コンソールアプリケーション」を作成します。
6 。新興の問題:
元のマシンの実験、Dドライブ内に設置C ++ PC、プリコンパイルされた環境試験初期のVisual C ++ 6.0コンパイラ環境とSQL Serverの初期設定では、ファイルをコンパイルして実行プログラムを直接実行するために、ブラウザの附属書を使用しているため。
データベースのデータベース名を作成する必要にリンクされているときに実行するためには、最初の文字識別番号ではありません。実験では、マシンが起動している時に添付ファイルを使用してプログラムを実行することはできません。そのため、すべての動作手順は、コマンドラインモードから実行する必要があります。