Bosna i Hercegovina



#1 01.09.2017-13:58
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Izvoz iz Excela u MySQL bazu sa datotekom.sql
htio bi sljedeci SQL kod staviti u txt dokument i napraviti uvoz u mysql pa da se to sve izvrsi ali sam zapeo

DownloadIzvorni kod (Text):
  1. TRUNCATE 'skladiste'; //ispraznim tablu skladiste
  2. INSERT INTO 'skladiste' ('kg', 'naziv')
  3. VALUES
  4. ('10','jabuka'),
  5. ('15','kruska'),
  6. ('40','sljiva');

evo ja ovaj gore dokument kad ga snimim kao uvoz.txt i onda izaberem u myadminsql uvoz ne izvrsi mi.

Znate li zasto je to tako?
Newton laže! Lake padaju brže!
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2017-13:43 od strane Avko. ↑  ↓

#2 01.09.2017-15:42
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Uvoz Podataka - Sql Naredbe
Nisi opisao nacin pokretanja. Kazes ne izvrsi.
Jeli pozoves ovaj sql ili kako to radis.
Sto se tice koda izgleda mi dobro.
Pozdrav
↑  ↓

#3 01.09.2017-20:30
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
Izaberem uvoz na mypanelu od mysql baze. To se koristi i kada uvozis csv file sa podacima. To je ona tipka pored export tipke. Kada kliknem na import odaberem datoteku sa racunala onda odaberem sql i kliknem na GO ali javi gresku
Newton laže! Lake padaju brže!
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 01.09.2017-20:58 od strane Avko. ↑  ↓

#4 01.09.2017-20:53
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Uvoz Podataka - Sql Naredbe
A jesil probao u Prozoru za pisanje Mysql copy paste radil tu.
Pozdrav
↑  ↓

#5 01.09.2017-20:59
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
E to nisam
Newton laže! Lake padaju brže!
↑  ↓

#6 01.09.2017-23:54
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,336


Subject: Re: Uvoz Podataka - Sql Naredbe
Kao txt nisam probao ali kao sql script to sam probao i radi,imao sam ja neka ovakva scripta za stvarajne baza,mogu potraziti ali posle vikenda.
↑  ↓

#7 02.09.2017-11:01
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
Citat od Gjoreski:
Kao txt nisam probao ali kao sql script to sam probao i radi,imao sam ja neka ovakva scripta za stvarajne baza,mogu potraziti ali posle vikenda.

u redu

rucno sam uneo i javilo mi gresku:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 472028 bytes) in C:\wamp\phpmyadmin\libraries\sqlparser.lib.php on line 331
Newton laže! Lake padaju brže!
↑  ↓

#8 02.09.2017-11:51
MsvK Offline
Clan
Registrovan/a od: 31.08.2017-22:34
Komentari: 1


Subject: Re: Uvoz Podataka - Sql Naredbe
Probaj da importas neku drugu bazu cisto da testiras pa javi jer mislim da imas problema sa myadminom
↑  ↓

#9 03.09.2017-12:49
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
evo, greska je bila u ovim znakovima koji izgledaju kao pola navodnika (kako se oni zovu? ASCII=39)

DownloadIzvorni kod (Text):
  1. TRUNCATE TABLE skladiste; =>trebalo je maknuti navodnike okoskladista i ubaciti TABLE
  2. INSERT INTO skladiste (kg, naziv) => i tu sam maknuo te pola navodnike
  3. VALUES
  4. ('10','jabuka'), => ovdje ti polaNavodnici moraju biti
  5. ('15','kruska'),
  6. ('40','sljiva');

datoteku sam snimio kao ime.sql, a ne ime.txt

mislim da se kod imena tabli koriste oni zarezi koji su ukoso a nalaze se gore kao navodnici (opet neznam kako se zovu ASCII=96).
Newton laže! Lake padaju brže!
↑  ↓

#10 04.09.2017-18:30
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,336


Subject: Re: Uvoz Podataka - Sql Naredbe
Pa taka mora biti uvjek kad je String u pitanje.
Primetio sam da mysql prima i brojeve ako si sa apostrofom odnosno to je onaj jedan navodnik.
↑  ↓

#11 04.09.2017-21:40
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
Cek, nisam razumio. Apostrof je za brojeve?
Newton laže! Lake padaju brže!
↑  ↓

#12 04.09.2017-22:49
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,336


Subject: Re: Uvoz Podataka - Sql Naredbe
za rojeve apostrof ti netreba ali nije greska i ako ga koristis.
Ako je pole definirano kao broj onda mozes da ga popunis i sa apostrof ai bez njega, ako je pole kao tekst ili string onda moras imati apostrof bezrazlika dali unosis brojeve ili tekst.

ovako imamo pole koje se zove Kolicina DOUBLE ( ja uvek ga koristim kad vrednosti su brojeve )
Sql bi isao otprilike ovako:
INSERT INTO tblDetali SET Kolicina=1.22 WHERE ID_Detali=100 ili
INSERT INTO tblDetali SET Kolicina='1.22' WHERE ID_Detali=100
↑  ↓

#13 27.09.2017-13:41
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,756


Subject: Re: Uvoz Podataka - Sql Naredbe
rijesio , a bilo je vise nego jednostavno samo mi je trebalo vremna da otkrijem.

Recimo da imamo neku bazu: ime_baze i u njoj 2 table tab_1 i tab_2.
Te se table sastoje od kolona, a u svakoj koloni su podaci.
Pa tako tab_1 ima kolone ID ime , a tab_2 ima kolone ID tezina

Ime_baze

tab_1
---------
ID | ime

tab_2
---------
ID | tezina

potrebno je iz exela prebaciti podatke u te dvije table na taj nacin da
prvo obrisemo stare podatke, a onda upisemo nove.

koristeci WRITE naredbu u VBA dobijamo txt doument u kojem su podaci sa navodnicima,
a to nam ne pase jer pokretanjem SQL on nemoze to izvrsiti.
Stvar je vrlo jednostavna umjesto WRITE naredbe koristimo PRINT naredbu.

evo kako to izgleda u VBA, samo dio koda

DownloadIzvorni kod (Visual Basic):
  1. Dim FF As Integer
  2. Dim imeFile As String
  3. FF = FreeFile()
  4.  
  5. exportName = "ime_datoteke.sql"
  6.  
  7. resetiranje varijabli
  8. celija1 = "": celija2 = ""
  9. PrintString = ""
  10.  
  11. Open exportName For Output As #FF
  12.         Print #FF, "TRUNCATE TABLE tab_1;"
  13.         Print #FF, "TRUNCATE TABLE tab_2;"
  14.         Print #FF, "INSERT INTO tab_1 (ID, ime)"
  15.         Print #FF, "VALUES"
  16.         For red = 1 To zadnjiRed /ovo mozete mijenjati
  17.  
  18.             celija1 = Cells(red, 2).Value 'uzima ID iz celije
  19.            celija2 = Cells(red, 3).Value 'uzima ime iz celije
  20.            
  21.             If PrintString = "" Then
  22.                 /ako je PrintString prazan , radi se o prvom redu pa nema zareza na pocetku
  23.                 PrintString = "('" & celija1 & "','" & celija2 & "')"
  24.             Else
  25.                 /ako PrintString nije prazan, podaci se nadovezuju pa treba zarez na pocetku
  26.                 PrintString = ",('" & celija1 & "','" & celija2 & "')"
  27.             End If
  28.             Print #FF, PrintString /upisemo PrintString u datoteku
  29.  
  30.         Next red /sljedeci red
  31.  
  32.         Print #FF, ";" /kada smo dosli do kraja upisemo na kraj ;
  33. Close #FF /zatvorimo datoteku za upisivanje
  34.  
  35.  
  36. mozda cete trebati obraditi podatke nakon upisivanja, kao ja, pa onda nastvljate upisivati u istu datoteku
  37. nove podatke.
  38.  
  39. neki kod koji obraduje celije i podatke u excelu
  40.  
  41. Open exportName For Append As #FF
  42.         Print #FF, "INSERT INTO tab_2 (ID, tezina)"
  43.         Print #FF, "VALUES"
  44.        
  45.         For red = 1 To zadnjiRed
  46.             celija1 = Cells(red, 2).Value 'ID
  47.            celija2 = Cells(red, 4).Value 'tezina
  48.  
  49.             If PrintString = "" Then
  50.                 PrintString = "('" & celija1 & "','" & celija2 & "')"
  51.             Else
  52.                 PrintString = ",('" & celija1 & "','" & celija2 & "')"
  53.             End If
  54.             Print #FF, PrintString
  55.            
  56.         Next red
  57.         Print #FF, ";"
Close #FF

nakon sto dobijete izlaznu datoteku jednostavno u phpmyadmin panelu izaberete
Import, odaberete ime_datoteke.sql i pokrenete
stari podaci u tab_1 i tab_2 bice prvo izbrisani a zatim ce se upload novi

i to je to.

mozda je moguce napraviti funkciju upisa podataka, ali to nisam probao.
Jednostavno sam dva puta napisao kod upisa podataka u datoteku.

DownloadIzvorni kod (Visual Basic):
  1. function exportData(prviRed, zadnjiRed, imeDatoteke, data_1, data_2)
  2.        
  3.         Open imeDatoteke For Append As #FF
  4.                 Print #FF, "INSERT INTO tab_2 (data_1, data_2)"
  5.                 Print #FF, "VALUES"
  6.        
  7.                 For red = prviRed To zadnjiRed
  8.                     celija1 = Cells(red, 2).Value 'ID
  9.                     celija2 = Cells(red, 4).Value 'tezina
  10.  
  11.                     If PrintString = "" Then
  12.                         PrintString = "('" & celija1 & "','" & celija2 & "')"
  13.                     Else
  14.                         PrintString = ",('" & celija1 & "','" & celija2 & "')"
  15.                     End If
  16.                        
  17.                         Print #FF, PrintString
  18.            
  19.                 Next red
  20.                 Print #FF, ";"
  21.         Close #FF
  22. end fuction

pozovemo ju sa :

    
DownloadIzvorni kod (Visual Basic):
  1. if exportData(1,20,ime.sql,ID,ime) = False then
  2.                 msgbox "greska u izvozu"
  3.         else
  4.                 msgbox "izvoz uspijesan"
  5.         end if
  6. i
  7.         if exportData(1,20,ime.sql,ID,tezina) = False then
  8.                 msgbox "greska u izvozu"
  9.         else
  10.                 msgbox "izvoz uspijesan"
  11.         end if

naravno da bi trebalo u tome kodu biti jos dosta toga za provjeru gresaka ili nesto drugo ali za jednostavni izvoz meni koristi
Newton laže! Lake padaju brže!
↑  ↓

#14 27.09.2017-14:56
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,336


Subject: Re: Izvoz iz Excela u MySQL bazu sa datotekom.sql
Ja kod jedne baze koja ima dosta artikala.
Kad ja pravim prenos sa jedne na druge baze koriatim taj nacin prenosa.
Tabela iz servera exportiram csv fajl ona sto ti pravis sa print funkcija,jas za to sam napravio procedura u mssql a onda taj csv importiram u mysql .
Ovaj nacin prenosa je dosta brzi svih ostali prenosa koi sam testirao.
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 23.11.2017-10:39.