Prikazi cijelu temu 14.10.2015 12:35
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Lokacija:Ohrid Makedonija


Predmet: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
PreuzmiIzvorni kôd (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
PreuzmiIzvorni kôd (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