Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ana Paula Simão

Erro na execução de Stored Procedure

Recommended Posts

Tenho uma aplicação em VB6 que executa uma stored procedure do postgreSQL, tive q incluir um campo no banco e alterei também as stored procedures necessárias, porém ao executar a aplicação estou recebendo a mensagem: "ERROR: syntax error at or near "$1" at character 75" na hora da inclusão; e "ERROR:syntax error at or near "$4" at character 94" na alteração. Já fiz a conferência dos dados que estão sendo passados e estão corretos. O que pode estar causando este erro?ObrigadaAna Paula :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho uma aplicação em VB6 que executa uma stored procedure do postgreSQL, tive q incluir um campo no banco e alterei também as stored procedures necessárias, porém ao executar a aplicação estou recebendo a mensagem: "ERROR: syntax error at or near "$1" at character 75" na hora da inclusão; e "ERROR:syntax error at or near "$4" at character 94" na alteração. Já fiz a conferência dos dados que estão sendo passados e estão corretos. O que pode estar causando este erro?ObrigadaAna Paula :(

Ana Paula,Também trabalho com o Postgresql versão 8.1 e vb06, vou disponibilizar meu e-mail para que me mande o código que vou analisá-lo em casa.e-amil = alisson@arq.ufmg.brUm agraço.Nossila

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser coloca a instrução SQL por aqui...Senão não tem como saber qual o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código é o seguinte:Public Sub salva_categoria(ByVal mode As Integer, ByVal dsc_categ As String, ByVal caminho As String, Optional ByVal id_cat As String, Optional ByVal temp As Integer, Optional ByVal ger_num As String) Dim cmd As ADODB.Command Set cmd = New ADODB.Command With cmd .CommandType = adCmdStoredProc If mode = 1 Then .Parameters.Append .CreateParameter("dsc_categoria", adVarChar, adParamInput, 100, dsc_categ) .Parameters.Append .CreateParameter("path_main", adVarChar, adParamInput, 200, caminho) .Parameters.Append .CreateParameter("temp", adInteger, adParamInput, , temp) .Parameters.Append .CreateParameter("gera_num", adVarChar, adParamInput, 4, ger_num) .CommandText = "add_categoria" Else .Parameters.Append .CreateParameter("dsc_categoria", adVarChar, adParamInput, 100, dsc_categ) .Parameters.Append .CreateParameter("path_main", adVarChar, adParamInput, 200, caminho) .Parameters.Append .CreateParameter("ID_categoria", adVarChar, adParamInput, 50, id_cat) .Parameters.Append .CreateParameter("temp", adInteger, adParamInput, , temp) .Parameters.Append .CreateParameter("gera_num", adVarChar, adParamInput, 50, ger_num) .CommandText = "upd_categoria" End If conn_gcard.Open .ActiveConnection = conn_gcard .Execute conn_gcard.Close End With Set cmd = NothingEnd SubPor favor, pessoal, me socorram. Estou com um projeto parado a 2 dias prq não consigo solucionar este problema!ObrigadaAna Paula

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os erros estão na instrução SQL que está na stores procedure. Coloca elas.Ou você está inserindo valores com ' que estão desestruturando a SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme solicitado, as stored procedures:-Inserir registroCREATE OR REPLACE FUNCTION add_categoria("varchar", "varchar", int4, "varchar") RETURNS bool AS* New function body */begin INSERT INTO categoria ("categoria", "path_principal", "ctrl_temporario","gera_num") VALUES ($1, $2, $3, $4); return true;end; LANGUAGE 'plpgsql' VOLATILE STRICT;ALTER FUNCTION add_categoria("varchar", "varchar", int4, "varchar") OWNER TO postgres;-Alterar registroCREATE OR REPLACE FUNCTION upd_categoria("varchar", "varchar", "varchar", int4, "varchar") RETURNS bool AS/* New function body */DECLaRE r_categoria integer;BEGIN r_categoria := get_id_referencia('id_categoria', $3, 'categoria'); UPDATE categoria SET "categoria" = $1, "path_principal" = $2, "ctrl_temporario" = $4, "gera_num" = $5 WHERE "id" LIKE r_categoria; return true;END; LANGUAGE 'plpgsql' VOLATILE;ALTER FUNCTION upd_categoria("varchar", "varchar", "varchar", int4, "varchar") OWNER TO postgres;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.