Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Följande kod är ett enkelt inbäddat SQL-program som skrivits i C. Programmet illustrerar många, men inte alla, av de inbäddade SQL-teknikerna. Programmet uppmanar användaren att ange ett ordernummer, hämtar kundnummer, säljare och status för ordern och visar den hämtade informationen på skärmen.
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();
}
Observera följande om det här programmet:
Värdvariabler Värdvariablerna deklareras i ett avsnitt som omges av nyckelorden BEGIN DECLARE SECTION och END DECLARE SECTION . Varje värdvariabelnamn prefixeras av ett kolon (:) när det visas i en inbäddad SQL-instruktion. Med kolonet kan förkompileraren skilja mellan värdvariabler och databasobjekt, till exempel tabeller och kolumner, som har samma namn.
Datatyper De datatyper som stöds av en DBMS och ett värdspråk kan vara helt olika. Detta påverkar värdvariabler eftersom de spelar en dubbel roll. Å ena sidan är värdvariabler programvariabler, deklarerade och manipulerade av värdspråkinstruktioner. Å andra sidan används de i inbäddade SQL-instruktioner för att hämta databasdata. Om det inte finns någon värdspråkstyp som motsvarar en DBMS-datatyp konverterar DBMS automatiskt data. Men eftersom varje DBMS har egna regler och idiosynkraser som är associerade med konverteringsprocessen måste värdvariabeltyperna väljas noggrant.
Felhantering DBMS rapporterar körningsfel till programprogrammet via ett SQL Communications Area eller SQLCA. I föregående kodexempel är den första inbäddade SQL-instruktionen INCLUDE SQLCA. Detta talar om för förkompileraren att inkludera SQLCA-strukturen i programmet. Detta krävs när programmet bearbetar fel som returneras av DBMS. NÄR... GOTO-instruktionen instruerar förkompileraren att generera felhanteringskod som förgrenas till en specifik etikett när ett fel inträffar.
Singleton SELECT Instruktionen som används för att returnera data är en singleton SELECT-instruktion. Det vill: den returnerar bara en enda rad med data. Kodexemplet deklarerar eller använder därför inte markörer.