Toon posts:

[MYSQL] kan dit? via odbc tabel (gedeeltelijk) copieren

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een probleem waar ik zelf niet goed weet hoe ik ermee moet beginnen,

ik heb een propriaty database die ik via odbc kan benaderen,
ik wil een uittreksel hiervan maken op een mysql database, ik had het zo in gedachte:
ik heb een lijst van tabelnamen en een beperking ("datum>now()-14" oid)
op een of andere mannier wil ik dat hij voor iedere regel in de lijst een tabel aanmaakt in mysql, en de data via odbc copieert (met de beperking die ik erin gezet heb)
(dit moet dan iedere avond gebeuren)

Hier komt de vraag:
Kan dit?
zo ja, hoe?
zo nee, hoe kan het wel?

  • m33p
  • Registratie: September 2002
  • Laatst online: 06-02 20:21
offtopic:
haha die signature :P


Ik heb er niet genoeg verstand van om wat concreets te zeggen, maar kun je niet beter kijken of je van die db een dump kan maken als een CSV file ofzo en dat gaat filteren en weer om zet naar SQL query's of iets dergelijks? Het kan misschien wel makkelijker maar ik zou zo geen weg weten om het in één handeling te doen. Misschien anderen hier die dat wel weten :)

Verwijderd

Topicstarter
de mogelijkheden om iets aan de originele server te doen zijn erg beperkt, dus als het enigzinds via de odbc te doen is moet ik het zo doen.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ja, je kunt DDL statements uitvoeren via ODBC. Dit betekent dus dat je CREATE TABLE statements kunt afvuren op de MYSQL database.

Hoe je dat doet kun je het beste lezen in de mysql handleiding die je vanaf de MySQL website kunt downloaden.

Een kleine opzet:
Je command-file ziet er (ongeveer) zo uit:
<tabel>,<voorwaarde>

Bijvoorbeeld:
"klant","aanmaakdatum >= #2006/01/01#"
"gebruiker", "naam >= 'a' AND naam <= 'Z'"

Vervolgens maak je een stuk code dat deze commandfile doorloopt en een query bakt zoals:
code:
1
2
3
SELECT *
FROM <tabel>
WHERE <voorwaarde>


Met zo'n beetje elke programmeertaal kun je vervolgens een analyse loslaten op je recordset om te zien wat voor data erin zit en aan de hand van deze gegevens genereer je een CREATE TABLE statement voor MySQL. Let wel op dat de gebruiker waarmee je de MySQL verbinding aanlegt wel CREATE en ALTER rechten op de database moet hebben.

Hoe je vervolgens record voor record deze data insert in je nieuwe tabel lijkt me triviaal.

Samenvattend:
Ja het kan, hoe moet je verder zelf uitzoeken.