[ miki987 @ 24.07.2014. 14:44 ] @
molim vas za pomoc samo da me prodje ova agonija, vec ceo dan pokusavam da resim problem sa našim slovima, konkretno, posedujem već postojeću bazu koja radi savršeno i prikazuje slova (collation cp1250)
medjutim, kada tu istu bazu eksportujem u csv radi dalje obrade kroz excel, ukljajanja suvisnih polja, onda tu istu obradjenu bazu povucem u access da bi je importovao na server, tu istu bazu na server kad povucem dakle iz access-a ne prkazuje mi naša slova.

Server connection collation: cp1250_general_ci
collation cp1250_general_ci

u čemu je problem?
[ bogdan.kecman @ 24.07.2014. 15:00 ] @
sta ti vrati

SELECT HEX(nekopoljesanasimslovima), nekopoljesanasimslovima FROM
nekatabelagdejetopolje;
[ miki987 @ 24.07.2014. 15:15 ] @
problem resen, importovao sam bazu direktno iz access-a, ranijih puta sve dok mi je pravilo gresku radio sam migraciju sa alatom MySQL Migration Toolkit i verovatno da je tu bio problem kroz definisanje charset-a, mada sam svuda upisivao cp1250

inace vrati mi slova u znaku ?
[ bogdan.kecman @ 24.07.2014. 15:20 ] @
bitnije je sta je u hex() posto je pitanje dal u bazi imas valjanu datu
ili ne
[ miki987 @ 24.07.2014. 15:32 ] @
evo sad ipak vidim da mi ipak ne čita slovo đ,č,ć
dobro, reci mi kako to da uradim, kada zadam upit u SQL

Code:
SELECT HEX(reg), reg FROM redb


izadje mi

Citat:
3F613034356F70 | ?a045op
[ bogdan.kecman @ 24.07.2014. 15:35 ] @
a sta tu treba da pise (sta ocekujes)
[ miki987 @ 24.07.2014. 15:37 ] @
treba da umesto ?a045op bude ča045op
tu istu bazu sa istim sortiranjem vec imam i to polje prikaže ča045op
kada exportujem bazu, obradim je u access-u i vratim nazad to polje prikaže ?a045op
[ bogdan.kecman @ 24.07.2014. 15:52 ] @
tu ti je sad u bazi vec ? ti tu ne mozes da procitas dj nikako iz tog
polja koliko ja vidim.
ono sto sam ti trazio je da negde gde imas "nasa" slova uradis taj
select, dakle pre nego go upropastis ne posle :D
[ miki987 @ 24.07.2014. 16:04 ] @
ne ne, imam dve baze, staru koju ne diram i koja na upit

Citat:
SELECT HEX(reg), reg FROM redb_orig WHERE `id`="7382"


daje sledeće

Citat:
E8613034356F70 | ča045op


a

ova koja mi pravi problem na upit

Citat:
SELECT HEX(reg), reg FROM redb WHERE `id`="7382"


daje

Citat:
3F613034356F70 | ?a045op



i da napomenem, pre samog slanja sa access-a preko odbc konektora, polje u access-u nije "?" vec ispravno
znaci negde u slanju baze nastaje problem

reci mi jel ovo ok kada selektujem Server connection collation format utf8 a on automatski prebaci na utf8mb4_bin, jel to tako treba_?



[Ovu poruku je menjao miki987 dana 24.07.2014. u 17:24 GMT+1]
[ bogdan.kecman @ 24.07.2014. 16:08 ] @
to sam hteo da vidim sta mysql ima zapisano, to je ok E8 je c ... znaci
ili ne valja kako exportujes ili program koji exportuje iz mysql-a ne valja
kako si radio export?
[ miki987 @ 24.07.2014. 16:22 ] @
evo na ovaj nacin samo na office 2007

https://www.youtube.com/watch?v=m9LxGF3Qc90

korisim SQL 5.6.16
ODBC 3.51
[ bogdan.kecman @ 24.07.2014. 16:33 ] @
u aksesu vidis nasa slova ok?
problem je u aksesu dal on pred odbc pretvori slovo preko 127 u ? ili
nisam siguran (nisam bas neki windoze trosac), probaj da promenis na
mysql-u globalne varijable za charset set global xxx='cp1250'; gde ti je xxx
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
character_set_system

tako da ako odbc ne setuje explicitno latin1 to bi trebalo da sljaka ..
e sad pogledaj u advanced opcijama za odbc da li negde mozes da namestis
client char set i postavi ga na cp1250
[ miki987 @ 25.07.2014. 08:00 ] @
Citat:
e sad pogledaj u advanced opcijama za odbc da li negde mozes da namestis
client char set i postavi ga na cp1250


rešen problem :), e ali sad imam problem kod upisa u bazu, opet ista stvar.

opcije podešene
Region and Language = Serbian Latin
Text1.Text = Central Eutrope = Arial
[ bogdan.kecman @ 25.07.2014. 08:44 ] @
ako ti je namestena tabela kako treba (kolacija i karakter set) sve
ostalo je generalno do podesavanja odbc-a. tu ja na zalost ne umem da ti
pomognem, mozda neko sa vecim odbc iskustvom, ja tome ne prilazim.
[ miki987 @ 25.07.2014. 09:06 ] @
molim te reci mi samo gde podesavam karakter set
[ bogdan.kecman @ 25.07.2014. 09:49 ] @
za tabelu, kada je kreiras .. uradi "show create table imetabeleG" i
videces koji je charset tamo, za ti sto ti radis kapiram da koristis
kolaciju cp1250_general_ci, dakle create izgleda npr ovako

create table t1 (pk int auto_increment not null primary key, v char(10))
engine=innodb character set 'cp1250' collate 'cp1250_general_ci';

kada se konektujes na bazu treba da se konektujes "validno", dakle treba
da postavis character set kako treba (kolacija je ovde nebitna), nije
mnogo bitno koji je karatker set, ti mozes da se okacis na mysql i sa
UTF8 karakter setom i mysql ce pravilno da upise u tabelu datu i da
pravilno iscita iz tabele datu i odradice u letu konverziju iz cp1250 u
to sa cime si se zakacio. Problem je ako se zakacis sa karakter setom
koji nema karaktere koje koristis. Na primer ako se okacis na mysql sa
LATIN1, u latin1 ne postoje neki karakteri i ti ako procitas datu iz
mysql-a (a okacio si se kao latin1) mysql ce ti tu vratiti ? za svaki
karakter koji ne postoji u latin1 karakter setu. Isto tako svaki
karakter koji posaljes ka mysql-u koji ne moze da se iskonvertuje u
cp1250 on ce upisati kao ?

e sad gde se u odbc-u silji kako se konektujes na mysql, tj koji je
karatakter set, pojma nemam .. a sad nemam koga da pitam konektor tim je
na drugoj strani kugle i otisli su svi na spavanje, ako ne resis pitacu
u ponedeljak .. ovde kod mene nemam nigde instaliran odbc da probam ali
proklikci malo sigurno ima negde ..

kada sam pravis connection string onda je to nesto tipa:

|Driver={MySQL ODBC 5.1
Driver};Server=myServerAddress;Database=myDataBase;User=myUsername;Password=myPassword;Option=3;||charset=UTF8;

e sad ti bi ovde umesto UTF8 mogao da stavis cp1250, no sta je fora,
bitno je da sam odbc to razume, u svakom slucaju skini najnoviji mysql
odbc pa vidi da li tamo u dsn-u moze negde da se naklika charset
|
[ miki987 @ 25.07.2014. 09:58 ] @
evo ovako:

Code:
cn.ConnectionString = "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; port=3306; Database=ex_base; charset=cp1250_general_ci; user=root; Password=; option=3;"


pa onda upis u bazu

Code:
SQL1 = "INSERT INTO rdb (ime_prezime,adresa) VALUES ('" & Text1.Text & "','" & Text2.Text & "');"


a odbc podesen ovako



svuda u mysql-u je postavljen cp1250_general_c
[ bogdan.kecman @ 25.07.2014. 10:04 ] @
uh 3.51 je malo mator, aj popni to na neki 5.x :)
[ miki987 @ 25.07.2014. 10:15 ] @
tu mi nastaje problem jer nece da se poveze iz nekog razloga

Code:
cn.ConnectionString = "Driver={MySQL ODBC 5.2 Driver};......



[ bogdan.kecman @ 25.07.2014. 10:22 ] @
pa vidis da se drugacije zovu od toga kako ti pise u conn stringu (ovo pretpostavljam da je problem, kao sto rekoh, ja taj odbc ne trosim)
[ miki987 @ 25.07.2014. 10:29 ] @
ne, ne, ne, nakon sto si mi rekao da instaliram noviji, ja i jesam, konrketno evo ponovo sam sad skinuo najnovji 5.3, u stringu sam poyvao njega kao

Code:
...Driver={MySQL ODBC 5.3 Driver}...



[ bogdan.kecman @ 25.07.2014. 10:31 ] @
evo navatao sam imenjaka koji je tata za to ...

1. gadjas pogresno drajver, vidis da imas ansi i unicode drajver to je deo imena
2. ansi drajver radi sa single char enkodingom (kao sto je cp1250) i sa utf8
3. unicode drajver je neophodan za enkoding dvobajtni fixed (utf16, ucs2..)

dakle tebe zanima taj ansi i sve ce radi

[ miki987 @ 25.07.2014. 10:34 ] @
probao i jedno i drugo i nece opet. iz stringa nece da se konektuje uopste sa odbc 5.3 !!!!!
[ miki987 @ 25.07.2014. 10:48 ] @
Vratio sam se na 3.51 i nakon toga, izmenio verziju drajvera u stringu, a za charset postavio charset=cp1250_general_ci nakon cega mi je iybacio gresku da takav charset na putanji C:\Program Files ... ne postoji, pa sam umesto charset=cp1250_general_ci postavio charset=cp1250 jer je zapravo u odbc-u isto tako podesen charset i dobio rezultat upisa ćčđšž. Dakle radi

Sad jedino sto me zanima, zasto moj odbc 5.3 nece da radi, i koje su razlike u verzijama 3.51 i 5.3 kad kazes mnogo mator?
[ bogdan.kecman @ 25.07.2014. 10:54 ] @
razlike su ogromne, 3.51 ne radi, pisan je za mysql 4.x

NIJE ISTO IME

ti si napisao

{MySQL ODBC 5.3 Driver}

na slici pise

{MySQL ODBC 5.3 Ansi Driver}

kako isto?
[ miki987 @ 25.07.2014. 11:00 ] @
Ok u pravu si propustio sam da dodam ANSI ali opet ista stvar, ista greska, kao da ne postoji, agonija :))))
[ miki987 @ 25.07.2014. 11:34 ] @
Rešen problem, inslarao sam odbc64 zato što mi je win7 64, zatim probao sa odbc32 i proradilo
Hvala puno na pomoći
[ miki987 @ 28.07.2014. 12:53 ] @
prilikom prebacivanja baze sa localhost-a na server dešava se sledeće i ja opet imam problem:

1. putem access-a i exportovanja (sa access-a na server) prvih 100 kolona ubacuje null vrednosti, tako da mi migracija podataka iz access-a ne vrši posao
2. putem alata MySql Migration Toolkit-a prebacivanje baze sa localhost-a na server i pored definisanog encodinga

Code:
charset=cp1250, collation=cp1250_general_ci

ili
Code:
charset=utf8, collation=utf8_general_ci


na

Code:
addAutoincrement=yes, charset=cp1250, collation=cp1250_general_ci, engine=INNODB


daje isti rezultat odsnono pojavljuju mi se ? umesto đ

3. prilikom exportovanja baze sa localhost-a (gde je inače sve ok ) na Desktop ( format .sql) pa zatim import na server taj isti .sql opet ista stvar, dobijam ? umesto đ

ODBC je podešen na cp1250

verzija MySQL-a na serveru je Server version: 5.5.37-cll
verzija MySQL-a na localhost-u je Server version: 5.6.16

[Ovu poruku je menjao miki987 dana 28.07.2014. u 14:21 GMT+1]

[Ovu poruku je menjao miki987 dana 28.07.2014. u 14:21 GMT+1]