0

以下のSQL更新は機能しませんが、従業員の更新で「cin name」をコメントアウトすると更新されます。従業員の検索中に従業員の名前を既に要求しているため、名前変数にデータを割り当てる必要があるため、わかりませんが、それは起こっていません。誰か助けてください。ありがとうございました。

            EXEC SQL BEGIN DECLARE SECTION;
                //int customer_id,cu_id;
                char salary[10],address[50];
                char name[50];
            EXEC SQL END DECLARE SECTION;

            fnConnectDB();

            cout<<"Customer Id\t\t: ";
            cin.getline(name,50); // search employee


                EXEC SQL SELECT * INTO :salary,:address,:name FROM EMPLOYEES WHERE NAME = :name;  
            // output empoyee information
            cout<<"\nCustomer Name\t\t: "<<name;
            cout<<"\nCustomer contact\t: "<<salary;
            cout<<"\nCustomer status\t\t: "<<address;
            cout<<"\n\nEnter new value for customer:\n\n";

    // update employee
        //  cout<<"Customer name\t\t: "; // if I comment out this it will update
        //  cin.getline(name,50);   // if I comment out this it will update
            cout<<"Customer salary\t\t: ";
            cin.getline(salary,10);
            cout<<"Customer address\t\t: ";
            cin.getline(address,50);

// check employee name if it initialize
    cout<<"\nCustomer Name\t\t: "<<name;

            EXEC SQL UPDATE EMPLOYEES SET SALARY=:salary, ADDRESS=:address WHERE NAME = :name;
4

1 に答える 1

0

NAME = :nameと交換したほうがいいと思いますNAME = 'name'

where 条件でコロンを:nameとして使用する代わりに、SQL クエリ ステートメントで行うように、名前を単一引用符で囲みます。

このリンクを確認してください: http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0005909.htm

于 2013-09-14T13:33:43.110 に答える