Toon posts:

[Acces/MySql] Het overzetten van kolommen ..

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met het overzetten van kolommen vanuit een Acces database naar een bestaande SQL database. Ook naar een bestaande tabel. Google bracht geen uitkomst. Ik heb verscheidene programma's geprobeerd maar telkens krijg ik foutmeldingen dat de database al bestaat.

Mischien is het een goed idee om een PHP script te schrijven waarin ik eerst de gegevens uit Acces haal om die vervolgens weer naar MySql te schrijven.?

Of heeft één van jullie een beter strijdplan?

  • johanmulder
  • Registratie: Augustus 2002
  • Laatst online: 02-05 15:32

johanmulder

Nederlands Ondertiteld

Hmm dergelijke dingen zijn lastig te bepalen zonder goed vooronderzoek, maar voor grotere conversies is een script in combinatie met een db conversie tool een aanrader. Een voorbeeld van een dergelijke tool is DB Manager van DBTools (http://www.dbtools.com.br/EN/dbmanagerpro/). Deze kan voor je verscheidende databasetypen naar elkaar overzetten.

Wat ik toch zelf de voorkeur aan heb is een eigen geklopte script, omdat je dan zelf ook direct indexes, constraints, veldtype en -naamwijzigingen doorvoeren kan. Om in een php-script een koppeling te maken met een access database heb je een DSN koppeling nodig. Deze kan je via je configuratischerm -> systeembeheer -> gegevensbronnen (ODBC) (oid) aanmaken. In PHP kan je vervolgens de volgende code toepasen voor gegevens met je gegevensbron:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$odbc = "DNSnaam";
$access = odbc_connect ($odbc, "", "");

$query = "SELECT naam,paswoord,email FROM accessDB";
$exc = odbc_exec($access, $query) or die(odbc_error()); 

echo "<table>";
while($row = odbc_fetch_row($exc)) {

    echo "<tr><td>naam : ".odbc_result($exc, 1);
    echo "</td><td>paswoord: ".odbc_result($exc, 2);
    echo "</td><td>email: ".odbc_result($exc, 3);
        echo "</td></tr>";
}
echo "</table>";


Dit is het ongeveer :) ik denk dat je je hiermee wel uit de voeten kan.

groeten Johan

[ Voor 11% gewijzigd door johanmulder op 15-03-2005 12:07 ]

Werkt met: Apple Macbook Pro 16" | Bouwt: Multi-cloud SaaS-oplossingen | Vader | Wereldreiziger | Rijdt: Mercedes GLC


Verwijderd

Topicstarter
Bedankt Johan,

De connectie met de Acces databas werkt als een zonnetje :)

Nu alleen nog de materie wegschrijven naar de MySQL Database ..

Thanks,

Smooth

Verwijderd

Topicstarter
Om als TS nog maar even door te gaan over het probleem:

Nu zet het script nog maar 1 regel in de MySql database terwijl dat er ongeveer 200 zouden moeten zijn. Mischien moet ik ergens handmatig aangeven dat ie naar de volgende rij moet gaan binnen de database? Zoja, hoe?

Of doe ik mischien iets anders verkeerd?

Dit is momenteel de code die ik hanteer:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
$odbc = "db";
$access = odbc_connect ($odbc, "", "");
$query = "SELECT Naam FROM Adm";
$exc = odbc_exec($access, $query) or die(odbc_error());

mysql_connect("localhost","root","")or die("doet nie");
mysql_select_db("moodle") or die(mysql_error());

while (odbc_fetch_row($exc))
{
    $result = odbc_result($exc,1);
    mysql_query("INSERT INTO mdl_user (firstname) VALUES('$result');");
}
?>

Verwijderd

Topicstarter
Ik denk dat ik het probleem reeds al gelocaliseerd heb.

In de MySql database zijn er een aantal velden die niet null mogen zijn. En ik voegde die niet allemaal toe... vervelend..

  • Boss
  • Registratie: September 1999
  • Laatst online: 09-05 22:57

Boss

+1 Overgewaardeerd

Je kan ook de MySQL ODBC driver installeren en dan vanuit Access een connectie maken naar je DB. Kan je lekker makkelijk queries maken en hoef je niet alls via PHP te doen. PHP is in weze totaal geen partij in deze conversie, toch?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Je hebt gelijk..

Ik ga een goede poging wagen ..
Pagina: 1