Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alábbi kód egy egyszerű beágyazott SQL-program, amely C nyelven íródott. A program sok, de nem az összes beágyazott SQL-technikát szemlélteti. A program kéri a felhasználót egy rendelésszám megadására, lekéri a vevőszámot, az értékesítőt és a rendelés állapotát, és megjeleníti a beolvasott adatokat a képernyőn.
int main() {
EXEC SQL INCLUDE SQLCA;
EXEC SQL BEGIN DECLARE SECTION;
int OrderID; /* Employee ID (from user) */
int CustID; /* Retrieved customer ID */
char SalesPerson[10] /* Retrieved salesperson name */
char Status[6] /* Retrieved order status */
EXEC SQL END DECLARE SECTION;
/* Set up error processing */
EXEC SQL WHENEVER SQLERROR GOTO query_error;
EXEC SQL WHENEVER NOT FOUND GOTO bad_number;
/* Prompt the user for order number */
printf ("Enter order number: ");
scanf_s("%d", &OrderID);
/* Execute the SQL query */
EXEC SQL SELECT CustID, SalesPerson, Status
FROM Orders
WHERE OrderID = :OrderID
INTO :CustID, :SalesPerson, :Status;
/* Display the results */
printf ("Customer number: %d\n", CustID);
printf ("Salesperson: %s\n", SalesPerson);
printf ("Status: %s\n", Status);
exit();
query_error:
printf ("SQL error: %ld\n", sqlca->sqlcode);
exit();
bad_number:
printf ("Invalid order number.\n");
exit();
}
Jegyezze fel a következőket a programról:
Gazdagépváltozók A gazdagépváltozók deklarálása a BEGIN DEKLARÁLT SZAKASZ és a ZÁRÓ DEKLARÁLT SZAKASZ kulcsszavak által körülvett szakaszban van. Minden gazdagépváltozó neve előtagként egy kettősponttal (:) szerepel, amikor beágyazott SQL-utasításban jelenik meg. A kettőspont lehetővé teszi, hogy az előfordító különbséget tegyen az azonos nevű hoszt változók és adatbázis-objektumok, például táblák és oszlopok között.
Adattípusok A DBMS és a gazdanyelv által támogatott adattípusok meglehetősen eltérőek lehetnek. Ez a gazdagépváltozókra azért van hatással, mert kettős szerepet játszanak. A gazdagépváltozók egyrészt programváltozók, amelyeket gazdanyelvi utasítások deklarálnak és módosítanak. Másrészt beágyazott SQL-utasításokban használják őket az adatbázisadatok lekéréséhez. Ha nincs olyan gazdagépnyelv-típus, amely megfelel egy DBMS-adattípusnak, a DBMS automatikusan konvertálja az adatokat. Mivel azonban minden DBMS saját szabályokkal és sajátosságokkal rendelkezik az átalakítási folyamathoz, a gazdagép változótípusokat gondosan kell kiválasztani.
Hibakezelés A DBMS futásidejű hibákat jelent az alkalmazásprogramnak egy SQL Communications Area-en vagy SQLCA-on keresztül. Az előző kód példában az első beágyazott SQL-utasítás az INCLUDE SQLCA. Ez azt jelzi az előfordítónak, hogy az SQLCA-struktúrát belefoglalja a programba. Erre akkor van szükség, ha a program feldolgozni fogja a DBMS által visszaadott hibákat. AHÁNYSZOR... A GOTO utasítás arra utasítja az előkészítőt, hogy hozzon létre egy hibakezelési kódot, amely hiba esetén egy adott címkére ágazik.
Singleton SELECT Az adatok visszaadására használt utasítás egy egyszeri SELECT utasítás; vagyis csak egyetlen adatsort ad vissza. Ezért a példakód nem deklarál vagy használ kurzorokat.