/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
[VB6] ADO
Fra : Johnny Emde Jensen


Dato : 09-07-01 23:07

Hej NG

Jeg har en AS/400 med en hulens masse databaser (DB2) som jeg 'connecter'
via ADO og det går som en leg.

Jeg har lavet en replicator i VB6 der henter data fra AS/400 over i en
Access database. Det funkerer ganske udemærket.

Mit problem er at hver gang vi får nye realeaser kan der være ændringer i
databaserne på AS/400'eren. Jeg har forsøgt først at hente alle
informationer omkring felt-navne og deres type - dette sammenligner jeg med
databasen over i Access databasen, hvis disse er ens er der sefø'li ingen
problemer. Men!!! hvis der er forskeld skal denne med over i Access.
Forskellen kunne være at et LONG felt er lavet om til INTEGER, der er kommet
flere nye felter og/eller nogen er fjernet.

1. sletter jeg databasen i Access med "DROP TABEL <navn>"
2. danner en sql via felt informationerne "CREATE TABEL <navn> (<felt>
<type>) osv..

Hertil ingen problemer, jeg har dannet en 100% indentisk database i Access,
uanset hvilke ændringer der måtte have været på AS/400'eren.

Nu er problemet at få data over i den nye database (det skal helst være via
ADO). Jeg har kigget på .GetRows og .GetString men kan ikke rigtig se en
løsning her...

Med venlig hilsen
Johnny



 
 
Anton Vestergaard (10-07-2001)
Kommentar
Fra : Anton Vestergaard


Dato : 10-07-01 11:02

Hej Johnny
Jeg ved ikke om jeg helt forstår dit spørgsmål.

"Johnny Emde Jensen" <emde@emde.dk> skrev i en meddelelse
news:UVp27.378$%i7.17278@news.get2net.dk...
> Hej NG
>
> Jeg har en AS/400 med en hulens masse databaser (DB2) som jeg
'connecter'
> via ADO og det går som en leg.
>
> Jeg har lavet en replicator i VB6 der henter data fra AS/400 over i en
> Access database. Det funkerer ganske udemærket.
Fint.

>
> Mit problem er at hver gang vi får nye realeaser kan der være
ændringer i
> databaserne på AS/400'eren. Jeg har forsøgt først at hente alle
> informationer omkring felt-navne og deres type - dette sammenligner
jeg med
> databasen over i Access databasen, hvis disse er ens er der sefø'li
ingen
> problemer. Men!!! hvis der er forskeld skal denne med over i Access.
> Forskellen kunne være at et LONG felt er lavet om til INTEGER, der er
kommet
> flere nye felter og/eller nogen er fjernet.
>
> 1. sletter jeg databasen i Access med "DROP TABEL <navn>"
> 2. danner en sql via felt informationerne "CREATE TABEL <navn> (<felt>
> <type>) osv..
>
> Hertil ingen problemer, jeg har dannet en 100% indentisk database i
Access,
> uanset hvilke ændringer der måtte have været på AS/400'eren.
>
> Nu er problemet at få data over i den nye database (det skal helst
være via
> ADO). Jeg har kigget på .GetRows og .GetString men kan ikke rigtig se
en
> løsning her...
Jamen længere oppe skrev du at du kunne hente data fra DB2 og putte dem
i Access!
Består problemet i at du har lavet ændringer på din tabel, og sidder med
en masse Access data
der skal puttes tilbage, hvor tabel formatet er forkert?
Jeg har et andet forslag:
1. Brug "ALTER TABLE ..." istedet for "DROP TABLE ...". Herved fjerner
du ikke data.
2. Lav et disconneted recordset til DB2.
3. Connect dit recordset til Access.
4. Kør en Update (Updatebatch?) på dit connectede recordset.

Jeg tror at det kan lade sig gøre på den måde. Ellers må du komme igen.


>
> Med venlig hilsen
> Johnny
>
>
mvh
Anton



Johnny Emde Jensen (10-07-2001)
Kommentar
Fra : Johnny Emde Jensen


Dato : 10-07-01 17:02

Hej Anton

> Jamen længere oppe skrev du at du kunne hente data fra DB2 og putte dem
> i Access!
> Består problemet i at du har lavet ændringer på din tabel, og sidder med
> en masse Access data

Nej det er i DB2 databasen (tabelen) der sker ændringer i. (1 - 2 gange
årligt)

> 1. Brug "ALTER TABLE ..." istedet for "DROP TABLE ...". Herved fjerner
> du ikke data.

Med alter table slipper jeg alligevel ikke for at skulle gennem løbe
databaserne for at kontrollerer data-ændringer.

> 2. Lav et disconneted recordset til DB2.

> 3. Connect dit recordset til Access.
Hvis jeg forstår dette korrekt, var det denne måde jeg gjorde det på i
'gamle' dage, og det bliver for langsomt.

> 4. Kør en Update (Updatebatch?) på dit connectede recordset.

Hvis vi tager vores Ordre databaser, der består af 3 databaser,
ordrehoveder, ordrelinier og ordretekster. Fra gang til gang hvor
replikerimngen foregår kan der have været ændret en masse i disse data. For
eks. indeholder ordrelinie basen ca 30.000 linier, som alle skal
kontrolleres op i mod databasen i Access for ændringer. Envidere når en
ordre ekspederes i DB2-system slettes den fra ordrebasen........(nu har jeg
snart svært ved af forklarer mig...) Jeg fant ud af at ved at slette data i
Access med (DELETE * FROM...) og dernæst fra DB2 (SELECT * FROM ...) og køre
gennem en lykke (Do Loop) og .AddNew over i Access. Derved slap jeg for at
kontroller om ændringer havde fundet sted, side sidste replikering.

Johnny




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste