arne, har du icq nr. som man kan kontakte dig på? Jeg er ved at samle information til en eksamen, hvor jeg skal snakke om måder at forbinde til en database på nemlig...Det lyder som om du har ret meget tjek på hvordan det funger :)
Der er ingen problemer med at være hardware/operativ-system uafhængig (Java !), problemet er om du er database uafhængig.
Hvis man undlader at bruge database specific SQL og de forskellige SQLJ pre-compilere er kompatible, så vil din kilde-tekst ihvertdfald være database uafhængig.
Men vil din genererede Java kode (og den deraf genererede byte kode) være database uafhængig ?
Det ved jeg faktisk ikke - jeg har aldrig selv brugt SQLJ. Interessant spørgsmål. Men det burde fremgå af noget dokumentation.
I C/Cobol/Fortran på mainframe/VMS/Unix verdenen er det: - den meste brugte måde at accesse databasen på - den mest standardiserede måde at accesse databasen på - sommetider eneste måde at accesse databasen
Embedded SQL har aldrig rigtight slet igennem på PC - formentlig p.g.a. ODBC.
Og helelr aldrig på Java - formentlig p.g.a. JDBC (og entitY EJB's og JDO oven på JDBC).
ok. Men hvordan virker det så helt præcist. Virker det sådan at du skriver nogle statiske sql-sætninger i toppen af din kode, som så bliver oversat til en specifik databases API-kald af en specifik præcompiler leveret af database-producenten?
Og når man bruger JSQL, hvordan oversætter den det så? Compiler den det på en måde så den gør brug af JDBC, eller finder den på en eller anden måde ud af at lave direkte API-kald til databasen? For hvis den laver den embeddede sql om til at den gør brug af jdbc, så kan man jo sige at så er det vel bare ligesom at bruge jdbc, bare på en anden måde
Et af trickene er, at hvis man i sin embedded SQL skriver :foobar så bliver den erstattet med C/Cobol/Fortran/Java variablen foobar. Så man kan faktisk godt gøre det ret fleksibelt.
Til C/CoboL/Fortran så bliver der genereret database specifik kode af pre-compileren som hganske rigtigt leveres af database-leverandøren.
Men jeg ved ikke med Java. De burde generere JDBC kald. Og JDBC kald bør i princippet være database uafhængige.
Men jeg ved ikke ret meget om SQLJ. Jeg svarede med et antal links ovre i Oracle gruppen. Prøv og læse dem. Måske afklarer det noget.
Eller så prøv og compile et lille test-program og se hvad der kommer ud af det !
ok...ja, har godt set du har svaret på mit spørgsmål ovre i java-gruppen også :) (Ved godt det ikke er helt lovligt, men jeg er lidt i tidsnød hæhæ) Skal nok linke over til det her spg. fra den anden kategori.
Kan man lave alle former for SQL-sætninger i embedded SQL ? Altså både DDL og DML. Hvis man også kan lave DML, hvor bliver resultaterne så gemt? SQLen bliver jo allerede udført af precompileren før selve koden, så variabler osv. findes vel ikke endnu....Eller hvordan virker det?
Og kan man godt opbygge dynamiske SQL-sætninger når man bruger embedded SQL. Altså lægge noget brugerinput i en SQL-sætning. Fx SELECT * FROM table WHERE betingelse=brugerinput ?
Du skrev tidligere det her : C/Cobol/Fortran på mainframe/VMS/Unix verdenen er det: - den meste brugte måde at accesse databasen på - den mest standardiserede måde at accesse databasen på - sommetider eneste måde at accesse databasen
Hvorfor er det gældende? Er det fordi der ikke findes en standardiseret mådes som JDBC til cobol/fortran osv? Hvad med ODBC? Kan man ikke gøre brug af ODBC fra de miljøer?
Jeg siger mange tusind tak Arne_V. Du har virkelig værtet mig til stor hjælp og sparet mig for en masse tid. Hvis jeg har flere spørgsmål at stille dig, hvilken kategori skal jeg så oprette spørgsmålet i for nemmest at få fat i dig :)?
Er det muligt istedet for at bruge embedded SQL, at kalde databasen direkte fra sit program, så man altså selv koder det som precompileren laver for en?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.