|
[ ZoranDE @ 30.08.2015. 06:42 ] @
| Ljudi pomagajte, vise nemam ideja
naime .. imam bazu u Accessu, i tabele koje treba sa podacima da ucitam u MySQL bazu.
Napravio sam u MySQL, bazu, i preslikao tabele iz Accessa.
zatim, napraivo sam mali software u MS Access 2007, koji uzima podatke iz MS Access baze, i salje ih u MySQL.
prebacivanje radim preko ODBC-a.
Nikako da nadjem nacin da polje koje je u MS Access tipa : Single, 2 Decimal places , i recimo vrednost 1,56 , prebacim u MySQL !
U MySQL, imam tabelu, u koju treba da ucitam vrednosti, i probao sam sve i svasta, iscitavao forume, ali jednostavno, nikako ne mogu : 1,56 iz MS Access ,da prebacim u MySQL ??
trenutno mi u MySQL stoji tip polja Decimal 11,2 . Probao sam i sa Float, i Double, i vise ne znam sta nisam probao, ali ne ide ?
Da li je problem u ODBC-u ? Ili je problem u MS Accessu koji sam uzeo za neki interface za prebacivanje izmedju ove 2 baze, pa VBA pravi problem ?
u Accessu mi stoji linija: Replace(Format(rst![PercentualeBonus], "0.00"), ",", ".") , i ovo prodje, kompajler ne prijavljuje gresku, ali , u MySQL tabeli umesto da dobijem 1,56 ja dobijem vrednost 2
10 x thanks in advance .
|
[ bogdan.kecman @ 30.08.2015. 13:37 ] @
kako ti izgleda deo koda koji radi insert u mysql?
[ ZoranDE @ 30.08.2015. 13:47 ] @
Ovako
db.Execute "INSERT INTO table (id,percentuale) VALUES (0," & Replace(Format(rst![Percentuale], "0.00"), ",", ".") & ")"
Probao sam I sa CDec(rst![Percentuale]) , ali nista. ...opet prilikom uvoza, Access (ili ODBC) isece decimalna mesta , I umesto npr. 12,25 dobijem 12
[ bogdan.kecman @ 30.08.2015. 13:57 ] @
ja ne radim bas u VB pa nisam skroz siguran sta se tu sad desava ali uradis sledece ... umesto da uradis db.Execute, uradi jedan printf() tj pandam tome u VB-u i isprintaj u neki txt box taj INSERT i vidi sta pise u njemu :)
posto ovo
Code:
Replace(Format(rst![Percentuale], "0.00"), ",", ".")
meni malo nema smisla
[ djoka_l @ 30.08.2015. 15:26 ] @
Pusti MySql da uradi konverziju, a ne Access.
Kada god sam imao problema sa ODBC uvek je to bilo u tipovima podataka. Recimo, prebacujem iz Accesa u Oracle i polje tipa decimal postane VARCHAR2(1) u Oracle!!!
Dakle, uradi
INSERT INTO table (id, percentuale) VALUES (0, CAST( 'XXX' AS DECIMAL(11,2))
gde ćeš umesto XXX da staviš vrednost iz tabele u Accessu konvertovanu u string funkcijom CStr i odgovarajuće formatiranu (ako ti MySQ očekuje decimalmnu tačku, onda sa tačkom, inače sa decimalnim zarezom).
Iz mog iskustva sa kilavim ODBC-om, uvek je najbezbednije numeričke vrednosti prebacivati kao stringove, pa pustiti odredišnu bazu da radi konverziju.
[ ZoranDE @ 30.08.2015. 15:32 ] @
Tako je ! ... probao sam to, da prebacim kao string, I posle MySQL da odradi posao I to radi.
ali sam se posle zainatio, I ipak otkrio da, stvarno kilavi ODBC, moze da se natera da uradi ovo
Replace(Format(rst![nekoPolje], "0.00"), ",", ".")
evo komande u Accessu, koja omogucava da se decimalna vrednost, prenese kako treba u MySQL.
pozdrav I hvala svima na diskusiji
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|