私のIF文がスキップされている理由を理解できないようです。 C++でのSQLの使用。 プログラムは最初の2つのIF文をスキップし、elseブランチにジャンプします。これがなぜこれをやっているのかは分かりません。これは私のコーディングです。はなぜ私のIF文がC++のSQLでスキップされているのか分からない
void add_technician() {
EXEC SQL BEGIN DECLARE SECTION;
char sn[10];
int s = 0;
char answer;
int umn;
char tname[30];
char tadd[30];
char tpho[10];
char tmod[15];
EXEC SQL END DECLARE SECTION;
cout << "Enter social security number:";
cin >> sn;
EXEC SQL SELECT count(*) into :s from Employees where SSN= :sn;
if (s == 1)
{
cout << "Employee already exists in the database.";
cout <<"Would you like to update the union-membership-number?";
cin >> answer;
if (answer == 'y'|| 'Y')
{cout <<"Enter new union member number:";
cin >> umn;
EXEC SQL
INSERT INTO Employee (ssn, union_member_no)
VALUES (:sn, :umn);
}
}
else {
cout << "Enter in union membership number of the new employee: ";
cin >> umn;
EXEC SQL INSERT INTO Employees (ssn, union_member_no)
VALUES (:sn, :umn);
EXEC SQL COMMIT WORK;
cout << "Enter the address of the technician.";
cin >> tadd;
cout << "Enter the name technician name.";
cin >> tname;
EXEC SQL INSERT INTO Technicians (address, name , phone)
VALUES (:tadd, :tname, :tpho);
EXEC SQL COMMIT WORK;
cout << "Enter airplane model number that you are an expert on." ;
cin >> tmod;
EXEC SQL INSERT INTO Experts (model_no, ssn)
VALUES (:tmod);
EXEC SQL COMMIT WORK; }
}
ないSQL戻り数= 0?データ/クエリが正しいことを確認しましたか? – littleadv
あなたはそれを 'スキップする'と言って、ちょうどelseに行くと、if/elseステートメントの仕組みを理解できますか?あなたの例では、sが1と等しくないときはelse blokを打つでしょう。 –
最初のif文を実際にはスキップします。なぜなら、2番目のif文は最初の1文の中にあるからです。 –