Allerførst er det nok relevant at spørge: Hvad skal du bygge en ODBC driver til?
Når jeg spørger, så er det fordi, at der idag allerede findes ODBC drivere til de fleste gængse dataformater. Og der findes ikke en database manager med respekt for sig selv, som IKKE har en ODBC driver.
Når det så er sagt, så skal du bruge MDAC SDK. Det finder du her:
Ok, fair spørgsmål. Naturligvis findes der ODBC-drivere til alt muligt, og hvis der er nogen der med nedenstående beskrivelse der kan udpege en fiks og færdig løsning, så giver jeg gerne flere point :-)
Jeg vil gerne have ODBC-adgang til en af mine databaser på et webhotel, hvilket jeg ikke kan få direkte af sikkerhedsmæssige årsager. Jeg funderede så over om det er værd at overveje, om man kan skrue en løsning sammen med en lokal ODBC-driver der via http kommunikerer med et eller flere scripts på serveren, der jo _kan_ få databaseadgang.
.NET er udelukket da serveren ikke kører Windows, og hvor jeg i øvrigt ingen adkomst har til at installere noget som helst. Og opbygningen skal være økonomisk overkommelig, da det er "nice-to-have" ikke "need-to-have".
jpyj: Jeg har godt nok både BC++ Builder og VC++ til rådighed, men anvender normalt VB, så du har muligvis ret. Jeg er nu ikke så bange for serversiden, den skal jeg nok få på plads med PHP. Det er mere klientsiden jeg er usikker overfor.
Jeg ved der findes nogle kommercielle produkter a la http://www.syware.com/ og http://www.simbatech.com/, men førstnævnte angiver prisen til $9000 (!) mens den anden slet ikke viser prisen (og det betyder jo som oftest en høj pris) :-(
Er der virkelig ingen der kender noget anvendeligt til en overkommelig pris ??
Hvad skal du bruge ODBC driveren til? Eller sagt på en anden måde, hvad er det for et program, der skal tilgå databasen på dit webhotel? Er det et C program eller nogle scripts? SKAL det være ODBC? Der kunne jo måske findes en lettere løsning på dit problem. Men det kræver at du fortæller lidt mere om "klienten" i den anden ende.
Det er såmen ikke fordi at jeg forsøger at være hemmelighedsfuld :-) ODBC virkede bare som en god metode da den jo er en standard og ikke specifik for et bestemt program. Jeg kører i øvrigt selv med Windows.
Det aktuelle behov var et (SQL-) udtræk til brevfletning, men oplysningerne i min database skulle på længere sigt gerne være anvendelige i andre sammenhænge. Derfor er det ikke én bestemt klient jeg har i tankerne, hvilket jo nok indskrænker de alternative løsningsmuligheder en smule.
Ja hvis det SKAL være "live data". Men hvis du nu kunne leve med "5 minutter gamle data", så er det jo straks nemmere. Så kan du "spejle" databasen fra webserveren til hvor du nu vil arbejde med dine data.
Igen, det er et "nice to have"-projekt, ikke "need to have". Den angivne "klippe-klistre"-metode fungerer udmærket, og det er da også den jeg har anvendt hidtil. Jeg sonderer blot terrænet for en bedre og mere generelt anvendelig løsning.
Det må da for pokker være muligt at trække data via http ??
Direkte ODBC er ikke en mulighed, for selvom der er tale om MySQL, hvortil der jo findes en MyODBC-driver, så tillader min webhotel-udbyder ikke ODBC-opkobling via Internet.
Et muligt alternativ jeg er kommet til at tænke på, er hvis der var tale om en XML/ODBC-driver, dvs. en ODBC-frontend der kommunikerede med databasen vha. et standard XML-format. Er der nogen der kender en sådan driver ?
Det er jo ikke specielt svært at lave serverscripts (php) der realiserer de nødvendige XML-svar.
Jamen det ved jeg jo godt. Jeg var bare stadig i det scenarie, hvor du laver et fuldt udtræk:
1) Klienten sender en request om et udtræk 2) Et serverside script kalder mysqldump, og returnerer data i text/plain format 3) Klienten overfører resultatet fra serverside scriptet til en lokal MySQL database.
Jeg kender desværre ikke nogen XML/ODBC drivere. Eftersom det er et "nice-to-have" projekt, så tror jeg stadig at ovenstående spejlingsprocess er det nemmeste for dig at lave.
alvion: når jeg nu læser dit sidste indlæg som en forklaring på dit næstsidste, skal jeg så forstå det således, at du mener at én MySQL-server kan spejle en anden automatisk ? I så fald tilstår jeg at jeg ikke kender funktionaliteten.
Eller talte du alene om en offline-funktion, f.eks. et tabeldump vha. phpMyAdmin som køres ind i en lokal database ? Jeg vil helst slippe for at køre med en lokal udgave til dette formål, selvom jeg da har en installeret til udviklingsformål, så den løsning lader jeg ligge.
Tror lige jeg poster spørgmålet om en XML/ODBC-driver i XML-forum (også).
Jeg talte om en "offline funktion". MySQL KAN dog også spejle, dvs. køre med en master/slave opsætning. Men det kræver igen at port 3306 er åben og så er du tilbage ved den oprindelige problemstilling... :-)
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.