Bosna i Hercegovina



#1 14.10.2015-12:35
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Adodb.Command + MySQL Stored Procedura
Deneska naletav na eden cuden problem na koj ne najdov resenie.
Imam Stored procedura koja mi vraka odredeni rezultati vo grid.
Jas naviknav da gi koristam stored procedurie od MSSQL server so ADODB.Command no vo MySQL naidov na problem koj ne mi dava da koristam ADODB.Command odnosno dobivam greska 424.
Ova e codot
DownloadIzvorni kod (Visual Basic):
  1.  If (txtDataOD) = "__.__.____" Then Me.txtDataOD.Text = "01.01." & Format(Now(), "yyyy")
  2.   If (txtDataDO) = "__.__.____" Then Me.txtDataDO.Text = "31.12." & Format(Now(), "yyyy")
  3.    Dim RsIzvestaj As ADODB.Recordset
  4.    Set RsIzvestaj = New ADODB.Recordset
  5.        ' Ova treba samo ako e MY SQL ,za MS SQL ne treba
  6.       RsIzvestaj.CursorLocation = adUseClient
  7.    
  8.     Dim cmd As ADODB.Command
  9.     Set cmd = New ADODB.Command
  10.  
  11.       With cmd
  12.            .ActiveConnection = cn
  13.            .CommandType = adCmdStoredProc
  14.            .CommandText = "spSmetki"
  15.            .Parameters.Append cmd.CreateParameter("OdData", adDate, adParamInput, , txtDataOD)
  16.            .Parameters.Append cmd.CreateParameter("DoData", adDate, adParamInput, , txtDataDO)
  17.       End With
  18.        
  19.          Set RsIzvestaj = cmd.Execute
  20.          Set cmd = Nothing
  21.  
  22.              
  23.          ' Test dali ima zapisi vo recordsetot
  24.         ' RsIzvestaj.MoveFirst
  25.         ' Do While Not RsIzvestaj.EOF
  26.         ' MsgBox RsIzvestaj.Fields(2)
  27.         ' RsIzvestaj.MoveNext
  28.         ' Loop
  29.        
  30.        ' za Data Grid
  31.        Set DataGrid1.DataSource = RsIzvestaj
  32.             DataGrid1.ReBind
  33.             DataGrid1.Refresh

A ova funkcionira bez problem
DownloadIzvorni kod (Visual Basic):
  1.  If (txtDataOD) = "__.__.____" Then Me.txtDataOD.Text = "01.01." & Format(Now(), "yyyy")
  2.   If (txtDataDO) = "__.__.____" Then Me.txtDataDO.Text = "31.12." & Format(Now(), "yyyy")
  3.    Dim RsIzvestaj As ADODB.Recordset
  4.    Set RsIzvestaj = New ADODB.Recordset
  5.        ' Ova treba samo ako e MY SQL ,za MS SQL i MSACCESS ne treba
  6.       RsIzvestaj.CursorLocation = adUseClient
  7.    
  8.              
  9.     RsIzvestaj.Open "CALL spSmetki('" & Format(txtDataOD, "yyyy-MM-dd") & "','" & Format(txtDataDO, "yyyy-MM-dd") & "')", cn, adOpenStatic, adLockOptimistic
  10.              
  11.    
  12.              
  13.          ' Test dali ima zapisi vo recordsetot
  14.         ' RsIzvestaj.MoveFirst
  15.         ' Do While Not RsIzvestaj.EOF
  16.         ' MsgBox RsIzvestaj.Fields(2)
  17.         ' RsIzvestaj.MoveNext
  18.         ' Loop
  19.        
  20.        ' za Data Grid
  21.        Set DataGrid1.DataSource = RsIzvestaj
  22.             DataGrid1.ReBind
  23.             DataGrid1.Refresh

Googlav malku no ne najdov nekoe objasnuvajne , moze ovde nekoj ima imano iskustvo so ova
↑  ↓

#2 14.10.2015-13:14
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Meni ne javlja gresku.
Javlja mi gresku ovdje
.ActiveConnection = cn
a to je sto nemam globalnu var cn odnosno konekciju.

Mozda ti se negdje nesto preklapa.
Postavi vecu cjelinu ako mozes.
Pozdrav
↑  ↓

#3 14.10.2015-13:34
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
cn E konekcijata na serverot eve i za nea cod samo stavi tvoi parametri
DownloadIzvorni kod (Visual Basic):
  1. Public cn As ADODB.Connection                ' Glavna konekcija za cel program
  2.  
  3. Public DA As Variant                         ' Zamena za TRUE
  4. Public NE As Variant                         ' Zamena za FALSE
  5.  
  6. Public BarCodePrefix As Integer                ' Prefiks na barkod citacot
  7. 'Global Const BarCodePrefix = "2"              ' Konstanta STX prefiks na bar kod citacot
  8. Public SearchFormaKasa As Boolean          ' Se koristi forma za prebaruvajne vo kasata
  9. Public SearchGridKasa As Boolean             ' Moze da se prebaruva vo gridot na kasata
  10.  
  11.  
  12. Sub Main()
  13. On Local Error GoTo Error_Main:
  14. Set cn = New ADODB.Connection
  15.      
  16.  
  17.     ' My SQL server
  18.  
  19.      
  20.      cn.ConnectionString = "Driver={Mysql ODBC 5.1 Driver}; Server=localhost" & _
  21.                            ";port=3306; database=BazaTest" & _
  22.                            "; user=root" & _
  23.                            "; password=admin" & "; option=3;"
  24.       DA = 1
  25.       NE = 0
  26.  
  27.    cn.Open
  28. If cn.State = adStateOpen Then
  29.    frmIzvestai.Show
  30. End If
  31.  
  32. Main_Exit:
  33.    Exit Sub
  34.  
  35. Error_Main:
  36.  
  37. If Err <> 0 And Err <> -2147217843 And Err <> -2147467259 Then MsgBox Err & "  -->>>  " & Error(Err)
  38.  
  39. If Err = -2147217843 Then
  40.     Call MsgBox("  !  #
  41.   !  " ", vbOKOnly + vbCritical + vbApplicationModal + vbDefaultButton1, "")
  42.    frmParametri.Show
  43.    Resume Main_Exit:
  44. End If
  45.  
  46. If Err = -2147467259 Then
  47.    Call MsgBox("  !  #
  48.   "  ", vbOKOnly + vbCritical + vbApplicationModal + vbDefaultButton1, "")
  49.     frmParametri.Show
  50.     Resume Main_Exit:
  51. End If
  52.  
  53.    
  54. End Sub

Greskata koja ja dobivam e error 7004 The rowset is not bookmarkable
po internet najdov samo deka ako se dodadi ovaa linija :
RsIzvestaj.CursorLocation = adUseClient
sve ke OK no jas toa od porano go imam staveno i ne e do toa problemot.
↑  ↓

#4 15.10.2015-08:33
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Kod mene radi.
Jedino sto nemoze je rsIzvjestaj koji nemam.

Koja ti je verzija ado?
Ja sam probao sa 20 i radi.
Pozdrav
↑  ↓

#5 15.10.2015-11:01
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Se prikazuvaat podatocite vo grid?
↑  ↓

#6 15.10.2015-11:06
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Kaj mene e ADO 2.8 ,no go zameniv i so 2.0 da probam pak isti problem.
Podatocite postojat ako go stavam recordsetot vo Do While ciklus toa raboti ,problem e koga polnime grid.
↑  ↓

#7 15.10.2015-20:29
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Nerznam imas li adoData odnosno adodc.
Evo preko njega je to mnogo lakse
Adodc2.CommandType = adCmdStoredProc
Adodc2.RecordSource = "vjezba" ' ime stored procedure
Adodc2.Refresh
Pozdrav
↑  ↓

#8 15.10.2015-21:16
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Nemam , nikogas nemam raboteno so adoData , utre ke probam pa ke javam.
Ako mozi nesto pokonkretno, kako se stavaat parametri na adoData za stor procedura , konekcija.
I uste nesto ova mi e malku neprakticno bidejki na nieden program ne go imam koristeno i sega samo za mySql moram.
Vo sekoj slucaj ne e loso da se znae.
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 15.10.2015-21:25 od strane Gjoreski. ↑  ↓

#9 15.10.2015-21:36
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Evo ovako.
Ja gotovo uvije koristim data kontrolu dali bilo ado ili dao.
Za ado moras ukljuciti componentu Microsoft ado data control.
Znaci postavim na formu jedan ili vise data kontrola.
Na njima mozes konekciju upidsati kodom ili direktno.
U tvom slucaju mozes napraviti dsn konekciju i upisati u conection string DSN=Imebaze
U recordsource upisas neku tabelu ili Query ili pak stored proceduru.
Kodom veci mas gore napisano za stored proceduru kako treba.

Poslije u datagrid-data source upises ime data kontole.
Poslije svake promjene u data dovoljno je refres data da se sve promijeni u datagrid.

meni je to uvijek bilo nekako naj prikladnije za rad.
Pozdrav
↑  ↓

#10 15.10.2015-21:44
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Znam jas za toa , imam jas resenie i za mojov problem eve vaka :

DownloadIzvorni kod (Visual Basic):
  1.   RsIzvestaj.Open "CALL spSmetki('" & Format(txtDataOD, "yyyy-MM-dd") & "','" & Format(txtDataDO, "yyyy-MM-dd") & "')", cn, adOpenStatic, adLockOptimistic
  2.              
ova e vo red raboti bez nikakov problem , no sakav da znam zosto ova so ADO.command ne mi funkcionira kako sto treba.
Za MSSQL i za ACCESS ADO.Command raboti bezprekorno,problem se javuva samo so MY SQL i toa samo koga treba da se napolni GRID ili DATA Commbo ,sve ostanato e vo red.
↑  ↓

#11 15.10.2015-21:55
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Moja pretpostavka je da je problem u formatu datuma.
Gledao sam dosta tudjih Mysql baza i vecinom prave datum brojcano polje pa paoslije kodom odraduju sve sto im treba.
Obicno je to INT sa 10 karaktera.
Vjerovatno tu postoje neki problemi.
Pozdrav
↑  ↓

#12 15.10.2015-21:58
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Kaj mene e Date ne stavam jas za data nikogas string , no ne se problem parametrite zatoa sto ista greska se javuva i so stor procedura bez parametri.
↑  ↓

#13 15.10.2015-22:12
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Znaci ako stored procedura ima ulazni parametar onda javlja gresku ako sam dobro razumio.
Pozdrav
↑  ↓

#14 15.10.2015-22:46
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,046


Subject: Re: Adodb.Command + MySQL Stored Procedura
Site proceduri javuvaat greska
↑  ↓

#15 16.10.2015-08:13
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Re: Adodb.Command + MySQL Stored Procedura
Cudno kod mene ne javlja.
Ako mozes zakaci svoju proceduru i bazu da probam napraviti slicno kao kod tebe.
Koja ti je verzija MySQL?
Pozdrav
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 24.01.2017-12:12.