Avatar billede bumle90 Nybegynder
19. november 2002 - 00:20 Der er 13 kommentarer og
1 løsning

teorispørgsmål

Hej, jeg vil høre om der er nogle der kan hjælpe mig med at finde ud af hvilke forskellige måder man kan forbinde til en database på. Jeg tænker på fx. ODBC,ADO,ADO.net og JDBC. Jeg vil bare gerne have så mange forskellige måder at vide som overhovedet muligt. Hvis der er nogle der kender nogle rigtig gode links til hvor jeg kan læse om de forskellige måde at kende på er de meget velkomne til at skrive det her også :) Jeg kunne også godt tænke mig at vide hvilken måde jeg skal vælg. Jeg har ikke lavet så meget med databaser, men jeg synes det er enormt spændene, og håber at der er nogle venlige sjæle som vil hjælpe mig lidt på vej med nogle gode råd, tips og forklaringer. Tak på forhånd :)
Avatar billede bumle90 Nybegynder
19. november 2002 - 14:50 #1
Er der ingen der har tid eller lyst til at hjælpe mig?
Avatar billede arne_v Ekspert
19. november 2002 - 15:26 #2
Der er rigtigt mange måder:
  - proprietary API's som f.ex. Sybase og Microsoft DBLIB
  - ODBC som er et standard API (mest udbredt på Windows)
  - JDBC som er et standard API for Java
  - embedded SQL som er næsten standard
  - OLE DB som er et Windows API
  - ADO og ADO.NET som er et Windows API

Ofte bruger nogel af API'erne hinanden.

ADO bruger OLE DB.

JDBC kan bruge ODBC.

ODBC & JDBC kan bruge proprietary API.

Det er en jungle. EN stor jungle.

Og jeg tror at en af grundene til at du ikke har
fået nogle svar er omfanget af problem-stillingen.
Avatar billede bumle90 Nybegynder
19. november 2002 - 15:54 #3
Hmmm ok. Hvad nu hvis man fx. sidder i et unix system og skal connecte til en database. Fx. måske oracle. Hvilken metode skulle man så vælge hvis man ikke havde mulighed for at bruge java og jdbc. Mange af dem du har nævnt er jo MS-specifikke metoder.
Avatar billede bumle90 Nybegynder
19. november 2002 - 15:55 #4
Er det rigtigt forstået at ODBC og JDBC svarer til hindanden. De kører bare på forskellige platforme?
Avatar billede arne_v Ekspert
19. november 2002 - 16:50 #5
Du kan godt få ODBC til ihvertfald nogle Unix.

Men det er ikke hvad man normalt bruger.

Hvis du har en applikation som kører på
Unix og skal bruge data fra en Oracle database,
så var embedded SQL absolut en mulighed.

Måske har Oracle også et specielt Oracle API.
(jeg er ikke nogen Oracle haj)
Avatar billede arne_v Ekspert
19. november 2002 - 16:51 #6
ODBC og JDBC ligner hinanden rigtigt meget.

Der er mest til Windows, fordi two-tier ofte
er Windows client til Unix database.
Avatar billede bumle90 Nybegynder
19. november 2002 - 18:11 #7
Hvorfor har man så en jdbc:odbc bridge?
Er det fordi at der ikke er skrevet nogen jdbc driver til fx. access og MSSql ? Så connecter man bare til en odbc datakilde istedet?
Avatar billede bumle90 Nybegynder
19. november 2002 - 18:12 #8
Og hvad er embedded sql helt præcist?
Avatar billede arne_v Ekspert
19. november 2002 - 18:22 #9
JDBC ODBC bridge er lavet fordi:
  - man ikke kan bruge ODBC direkte i Java
  - man gerne ville have folk igang med JDBC hurtigt
    og der var ODBC drivere til næsten alt
Avatar billede arne_v Ekspert
19. november 2002 - 18:23 #10
Der er en JDBC driver til SQLServer 2000 (jeg er sikker
på Bil gates græd da man beslutetde at lave den).

det er korrekt at der ikke er en JDBC driver til
Access. MS og Java !
Avatar billede arne_v Ekspert
19. november 2002 - 18:26 #11
Embedded SQL består i at du skriver et program i
C/FORTRAN/COBOL/whatever.

Du sætter EXEC SQL sql-sætning ind midt i programmet.

Så kører du det program gennem en pre-compiler
og så har du et færdigt program der kan compiles
(ofte kalder pre-compileren den almindelige compiler).

Det er faktisk "klassisk database-programmering".

Du må kunne finde masser om det i manuler og på
nettet.
Avatar billede arne_v Ekspert
19. november 2002 - 18:45 #12
Avatar billede mfalck Praktikant
20. november 2002 - 10:30 #13
du kan evt hente odbc drivere til unix på www.unixodbc.org .. serveren svarede ikke her til morgen .. men plejer at virke.

Det er lidt svært at svare på hvordan man forbinder sig til en database fra et unix-system - det er jo som regel en del af et programmeringssprog at forbinde sig til en database. F.eks. har PHP sine metoder at forbinde sig til en database på (ganske vist baserer de sig på et API som et leveret af Oracle selv) og Perl har en anden måde.
Avatar billede mfalck Praktikant
20. november 2002 - 10:46 #14
hov kom lige til at tænke på at en af måderne at forbinde sig til en Oracle database fra unix (og windows oxå) er igennem værktøjet "sqlplus".

man logger ind ved:
sqlplus scott/tiger@ORCL

hvor "scott" er brugernavn
"tiger" er password
og "ORCL" er oracle-SID som defineres i tnsnames.ora (en tekstfil med noget som ligner følgende:
local_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
    (CONNECT_DATA = (SID = remote_SID))
  )

).
Dette kan også bruges i et shell-script til at hente data ud med;
noget i stil med:
#!/bin/bash

FILENAME=$1

sqlplus scott/tiger@ORCL<<EOF
spool $FILENAME
select * from min_tabel;
spool off
exit
EOF

hvis du kalder filen for "mit-script" kan du hente data ud med:
# mit-script minfil.txt
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester