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.
Eftersom ett inbäddat SQL-program innehåller en blandning av SQL- och värdspråkinstruktioner kan det inte skickas direkt till en kompilator för värdspråket. I stället kompileras den genom en process med flera steg. Även om den här processen skiljer sig från produkt till produkt är stegen ungefär desamma för alla produkter.
Den här bilden visar de steg som krävs för att kompilera ett inbäddat SQL-program.
Fem steg ingår i kompileringen av ett inbäddat SQL-program:
Det inbäddade SQL-programmet skickas till SQL-förkompileraren, ett programmeringsverktyg. Förkompileraren söker igenom programmet, hittar de inbäddade SQL-uttrycken och bearbetar dem. En annan förkompilerare krävs för varje programmeringsspråk som stöds av DBMS. DBMS-produkter erbjuder vanligtvis förkompilerare för ett eller flera språk, inklusive C, Pascal, COBOL, Fortran, Ada, PL/I och olika sammansättningsspråk.
Förkompileraren genererar två utdatafiler. Den första filen är källfilen, fråntagen dess inbäddade SQL-instruktioner. I deras ställe ersätter precompilern anrop till egna DBMS-rutiner som tillhandahåller körningslänken mellan programmet och DBMS. Vanligtvis är namnen och anropssekvenserna för dessa rutiner endast kända för förkompileraren och DBMS. de är inte ett offentligt gränssnitt för DBMS. Den andra filen är en kopia av alla inbäddade SQL-instruktioner som används i programmet. Den här filen kallas ibland för en modul för databasbegäran eller DBRM.
Källfilens utdata från förkompileraren skickas till standardkompilatorn för värdprogrammeringsspråket (till exempel en C- eller COBOL-kompilator). Kompilatorn bearbetar källkoden och skapar objektkod som utdata. Observera att det här steget inte har något att göra med DBMS eller SQL.
Länkaren accepterar de objektmoduler som genereras av kompilatorn, länkar dem med olika biblioteksrutiner och skapar ett körbart program. Biblioteksrutinerna som är länkade till det körbara programmet innehåller de egna DBMS-rutinerna som beskrivs i steg 2.
Modulen för databasbegäran som genereras av förkompileraren skickas till ett särskilt bindningsverktyg. Det här verktyget undersöker SQL-uttryck, parsar, validerar och optimerar dem och skapar sedan en åtkomstplan för varje instruktion. Resultatet är en kombinerad åtkomstplan för hela programmet, som representerar en körbar version av de inbäddade SQL-uttrycken. Bindningsverktyget lagrar planen i databasen och tilldelar den vanligtvis namnet på det program som ska använda den. Om det här steget sker vid kompilering eller körtid beror på vilken DBMS som används.
Observera att de steg som används för att kompilera ett inbäddat SQL-program korrelerar mycket nära de steg som beskrivs tidigare i Bearbetning av en SQL-instruktion. Observera särskilt att precompiler separerar SQL-uttrycken från värdspråkkoden, och bindningsverktyget parsar och validerar SQL-uttrycken och skapar åtkomstplaner. I databashanteringssystem (DBMS) där steg 5 sker vid kompilering, sker de första fyra stegen i SQL-instruktionens bearbetning under kompileringen, medan det sista steget (körning) sker vid körning. Detta innebär att körningen av frågor i sådana databashanteringssystem blir mycket snabb.