[ gorancho @ 05.12.2010. 21:00 ] @
Može li se ODBC konekcijom likovati sa MySQL-om još nešto osim tabela ? (neki upit sa prosledjenim parametrom na primer )
[ Zidar @ 06.12.2010. 14:23 ] @
Probaj pass-thru query. Pass-thru query se izvrsava na serveru na koji si zakacen, u sintaksi tog servera. Ako je tvoj server MySQL, onda u pass thru upises kakvu god hoces MySQL naredby i to se izvrsi na MySQL. Accesu se samo prosledi rezultat. Mozes da pozivas i stored procedures. Ja ne znam MySQL, a li u MS SQQL to izgleda ovako nekako:

EXECUTE uspMyStoredProcedure @Ime = 'abcd', @Broj = 3

U Accesu treba da sastavis string koji izgleda tacno kao tvoaj MySQL naredba, postavis da to bude qdef.sql za pass thru query i onda ga izvrsis. Ima znaci nekoliko koraka, potrebno je menjati u letu SQL izkaz za querydef (tvoj kveri) i izvrsiti ga na kraju.

Nije totalno jednostavno, ali nije ni pretesko, i nije za amatere, ali ni ti nisi amater
[ gorancho @ 03.01.2011. 00:47 ] @
Probao sam Pass-thru query i to je to ali

Kako da kreiram Pass-thru query kodom ???
[ Zidar @ 04.01.2011. 17:06 ] @
Korak 1: Napravi pass thru kveri rucno - kreiras obican kveri, pa mu dodelis da je pass-thru, ne mora da ima nikakav SQL statement unutra. Dodaj mu ODBC conection rucno. Neka se taj kveri sacuva pod imenom qpasMySQL

U kodu, kad ti treba da izvrsis pass-thru sa konkretnim podacima onda radis ovako:

Code:


sub OpenPassThru

dim db as DAO.database
dim qdef as DAO.QueryDef
dim strSQL as string

set db = currentdb

set qdef = db.QueryDefs ("qpasMySQL")

strSL = 'SELECT.... ovde dodje komanda koja terba da se izvris u MySQL'

qdef.SQL = strSQL  'ovim si dodelio tvom postojecem kveriju novu definiciju

'sada otvoris taj kveri kako to odgovara, moze preko recordseta a moze i kao query

dim rs AS DAO.Recordset

set rs = db.openrecordset ("SELECT * FROM qpasMySQL")

' a moze i ovako:

DoCmd.OpenQuery QueryName:="qpasMySQL"

'Na kraju zatvoris db, rs i qdef objekte

ON ERROR RESUME NEXT
rs.close
set qdef = nothing
set db = nothing
set rs = nothing

end sub



:-)