PROCEDURE MYSQL VB6
Pessoal bom dia,
Encontrei varios topicos sobre o assunto mais nenhum conseguiu resolver meu problema.
Criei uma Procedure no MySql Versao 5.0
CREATE PROCEDURE 'BUSCACEP'(NCEP)
SELECT * FROM TB_CEP WHERE CEP = NCEP;
No MySql executa normal, mais quando vou executar pelo VB6 da pau.
can[ô]t return a result set in the given context
[ô]não pode retornar um conjunto de resultados no contexto dado
Forma que estou executando no VB6 é a mesma forma que executo no MySql.
Dim Rs As ADODB.Recordset
Gsql = [Ô]CALL BUSCACEP([ô][Ô] & TxtCEP.Text & [Ô][ô])[Ô]
Set Rs = Conn.Execute(Gsql)
Encontrei varios topicos sobre o assunto mais nenhum conseguiu resolver meu problema.
Criei uma Procedure no MySql Versao 5.0
CREATE PROCEDURE 'BUSCACEP'(NCEP)
SELECT * FROM TB_CEP WHERE CEP = NCEP;
No MySql executa normal, mais quando vou executar pelo VB6 da pau.
can[ô]t return a result set in the given context
[ô]não pode retornar um conjunto de resultados no contexto dado
Forma que estou executando no VB6 é a mesma forma que executo no MySql.
Dim Rs As ADODB.Recordset
Gsql = [Ô]CALL BUSCACEP([ô][Ô] & TxtCEP.Text & [Ô][ô])[Ô]
Set Rs = Conn.Execute(Gsql)
Amigo, tente tirar o CALL da GSQL
Dim Rs As ADODB.Recordset
Gsql = [Ô]BUSCACEP([ô][Ô] & TxtCEP.Text & [Ô][ô])[Ô]
Set Rs = Conn.Execute(Gsql)
Ja tentei isso amigo...
Executando assim me retorna erro de sintaxe.
Executando assim me retorna erro de sintaxe.
Set rs = New ADODB.Recordset
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conexao
.CommandType = adCmdStoredProc
.CommandText = [Ô]BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
.Parameters.Append .CreateParameter([Ô]pessid[Ô], adInteger, adParamInput, 10, TDBGrid1.Columns(1).Text)
Set rs = .Execute
[ô]PREENCHENDO UM GRID QUALQUER
If Not TDBGrid1.EOF Then
Set TDBGrid1.DataSource = rs
End If
Set .ActiveConnection = Nothing
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conexao
.CommandType = adCmdStoredProc
.CommandText = [Ô]BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
.Parameters.Append .CreateParameter([Ô]pessid[Ô], adInteger, adParamInput, 10, TDBGrid1.Columns(1).Text)
Set rs = .Execute
[ô]PREENCHENDO UM GRID QUALQUER
If Not TDBGrid1.EOF Then
Set TDBGrid1.DataSource = rs
End If
Set .ActiveConnection = Nothing
Amigo já havia tentado...
Erro que retorna.
YOU HAVE AN ERROR IN YOUR SQL SYNTAX; CHECK THE MANUAL THAT
CORRESPONDS TO YOUR MYSQL SERVER VERSION FOR THE RIGTH SYNTAX TO USE NEAR {CALL BUSCACEP} AT LINE 1
Tradução: Você tem um erro em sua sintaxe SQL; verifique o manual que
Corresponde à sua versão do servidor MySQL para a sintaxe rigth USAR NEAR} {CALL BUSCACEP na linha 1
Forma que executei... criei uma procedure sem parametros para facilitar e mesmo assim nao foi.
Set Rs = New ADODB.Recordset
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = [Ô]CALL BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
[ô].Parameters.Append .CreateParameter([Ô]pessid[Ô], adInteger, adParamInput, 10, TDBGrid1.Columns(1).Text)
Set Rs = .Execute
End With
Lembrando Executei com parametro, sem parametro, coloquei [Ô]call buscacep[Ô], sem o call.
A procedure executa normal no MYSQL.
Erro que retorna.
YOU HAVE AN ERROR IN YOUR SQL SYNTAX; CHECK THE MANUAL THAT
CORRESPONDS TO YOUR MYSQL SERVER VERSION FOR THE RIGTH SYNTAX TO USE NEAR {CALL BUSCACEP} AT LINE 1
Tradução: Você tem um erro em sua sintaxe SQL; verifique o manual que
Corresponde à sua versão do servidor MySQL para a sintaxe rigth USAR NEAR} {CALL BUSCACEP na linha 1
Forma que executei... criei uma procedure sem parametros para facilitar e mesmo assim nao foi.
Set Rs = New ADODB.Recordset
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = [Ô]CALL BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
[ô].Parameters.Append .CreateParameter([Ô]pessid[Ô], adInteger, adParamInput, 10, TDBGrid1.Columns(1).Text)
Set Rs = .Execute
End With
Lembrando Executei com parametro, sem parametro, coloquei [Ô]call buscacep[Ô], sem o call.
A procedure executa normal no MYSQL.
Set Rs = New ADODB.Recordset
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = [Ô]BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
.Parameters.Append .CreateParameter([Ô]NCEP[Ô], adInteger, adParamInput, 20, txtcep.text)
Set Rs = .Execute
End With
[ô]verifique os campos no parametro amigo.. , verifique o campo ncep,passei o valor como se fosse inteiro, verifique como esta no seu banco.. e nao coloque call para chamar a mesma, tem que ser o nome da storage.
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = [Ô]BUSCACEP[Ô]
[ô] ABAIXO O VALOR A SER PESQUISADO LEMBRANDO QUE TEM QUE TER ESSA VARIAVEL NA SUA STORAGE
.Parameters.Append .CreateParameter([Ô]NCEP[Ô], adInteger, adParamInput, 20, txtcep.text)
Set Rs = .Execute
End With
[ô]verifique os campos no parametro amigo.. , verifique o campo ncep,passei o valor como se fosse inteiro, verifique como esta no seu banco.. e nao coloque call para chamar a mesma, tem que ser o nome da storage.
Sim Amigo todos esses fatos tratei como informei anteriormente....
Crie Procedure sem parametros... portanto a linha de parametro nao precisa existir correto?
CREATE PROCEDURE 'BUSCACEP'()
SELECT * FROM TB_CEP;
E outra Assim
CREATE PROCEDURE 'INSERIRCEP'()
INSERT INTO TB_CEP VALUES (1,[ô]05524-665[ô],[ô]RUA TAL[ô], [ô]BAIRRO TAL[ô], [ô]CIDADE TAL[ô], [ô]ESTADO TAL[ô];
A procedure do Insert executa normal, da mesma forma que executo no MYSQL ela Executa no VB6.
Agora a Procedure do Select nao executa. (Quando a Procedure retorna Dados).
Valeu pela ajuda...
Todos esses fatos simples, tentei todos antes do post
Crie Procedure sem parametros... portanto a linha de parametro nao precisa existir correto?
CREATE PROCEDURE 'BUSCACEP'()
SELECT * FROM TB_CEP;
E outra Assim
CREATE PROCEDURE 'INSERIRCEP'()
INSERT INTO TB_CEP VALUES (1,[ô]05524-665[ô],[ô]RUA TAL[ô], [ô]BAIRRO TAL[ô], [ô]CIDADE TAL[ô], [ô]ESTADO TAL[ô];
A procedure do Insert executa normal, da mesma forma que executo no MYSQL ela Executa no VB6.
Agora a Procedure do Select nao executa. (Quando a Procedure retorna Dados).
Valeu pela ajuda...
Todos esses fatos simples, tentei todos antes do post
exemplo de como preencher um grid, mas tem a select ai.. tente reconfigurar para seu caso.
Sub PreencheProdutos()
Set rsProdutos = New ADODB.Recordset
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Conexao
.CommandType = adCmdStoredProc
.CommandText = [Ô]sp_somarprodutos_cadpessoas[Ô]
.Parameters.Append .CreateParameter([Ô]pessid[Ô], adInteger, adParamInput, 10, TDBGrid1.Columns(1).Text)
Set rsProdutos = .Execute
If Not TDBGrid1.EOF Then
Set TDBGrid4.DataSource = rsProdutos
End If
Set .ActiveConnection = Nothing
End With
End Sub
Amigo so uma pergunta essa procedure que voce mandou de exemplo esta em MYSql.
Porque esse comando é o mesmo que me passou anteriormente.
Da o mesmo erro, na linha de Parameters tem [Ô]adParamInput[Ô]...
Tambem mudei para [Ô]adParamOutput[Ô].
Nao rodou...
Sei que voce esta tentando ajudar... Mais como falei todos os exemplos do forum tentei.
Existe alguma propriedade que voce diz que a procedure vai retornar dados, talves seja [Ô]adParamOutput[Ô] e mais alguma coisa.
Porque esse comando é o mesmo que me passou anteriormente.
Da o mesmo erro, na linha de Parameters tem [Ô]adParamInput[Ô]...
Tambem mudei para [Ô]adParamOutput[Ô].
Nao rodou...
Sei que voce esta tentando ajudar... Mais como falei todos os exemplos do forum tentei.
Existe alguma propriedade que voce diz que a procedure vai retornar dados, talves seja [Ô]adParamOutput[Ô] e mais alguma coisa.
Obrigado... Solucionado...
Peguei versão recente do meu drive de ODBC e funcionou...
Não é necessario todos os comando listados acima para executar procedure... basta
StrSql = [Ô]Call BuscaCep([ô]00000-000[ô])[Ô]
Conexao.execute(StrSql)
Peguei versão recente do meu drive de ODBC e funcionou...
Não é necessario todos os comando listados acima para executar procedure... basta
StrSql = [Ô]Call BuscaCep([ô]00000-000[ô])[Ô]
Conexao.execute(StrSql)
Tópico encerrado , respostas não são mais permitidas