UPDATE NO SQL
Dessa vez o problema e no UPDATE/SQL.
executo uma STORE PROCEDURE no meu projeto,na seguinte sintaxe:
CREATEP ROCEDURE SP_ALT
@ID_FICHA CHAR(12),
@ID_UNIDADE VARCHAR(13),
@ID_FUNCAO CHAR(2),
@ID_SUBFUNCAO CHAR(3),
@CRED_ESPEICAL BIT,
@LEI CHAR(3),
@DATA DATETIME
AS
BEGIN TRAN
UPDATE FICHAS SET ID_UNIDADE=@ID_UNIDADE, ID_FUNCAO=
@ID_FUNCAO,ID_SUBFUNCAO=@ID_SUBFUNCAO WHERE
ID_FICHA=@ID_FICHA
IF @CRED_ESPEICAL=1
BEGIN
UPDATE CRED_ESPECIAIS SET LEI=@ID_LEI,DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
END
COMMIT TRAN
e ela me retorna o seguinte erro:
Too many arguments were supplied for procedure SP_ALT.
onde estaria o erro, se esses mesmos parametros é usado no INSERT INTO
GRATO
executo uma STORE PROCEDURE no meu projeto,na seguinte sintaxe:
CREATEP ROCEDURE SP_ALT
@ID_FICHA CHAR(12),
@ID_UNIDADE VARCHAR(13),
@ID_FUNCAO CHAR(2),
@ID_SUBFUNCAO CHAR(3),
@CRED_ESPEICAL BIT,
@LEI CHAR(3),
@DATA DATETIME
AS
BEGIN TRAN
UPDATE FICHAS SET ID_UNIDADE=@ID_UNIDADE, ID_FUNCAO=
@ID_FUNCAO,ID_SUBFUNCAO=@ID_SUBFUNCAO WHERE
ID_FICHA=@ID_FICHA
IF @CRED_ESPEICAL=1
BEGIN
UPDATE CRED_ESPECIAIS SET LEI=@ID_LEI,DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
END
COMMIT TRAN
e ela me retorna o seguinte erro:
Too many arguments were supplied for procedure SP_ALT.
onde estaria o erro, se esses mesmos parametros é usado no INSERT INTO
GRATO
O erro está aki velho:
UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]ID_LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
E você criou lá encima como:
@LEI CHAR(3),
Sacou?
UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]ID_LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
E você criou lá encima como:
@LEI CHAR(3),
Sacou?
Perdão amigo, eu escrevi a sintaxe errado, o que tem na store procedure é isso mesmo
UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
e o erro continua, Valeu.
UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
e o erro continua, Valeu.
Cara..eu tenho algo sobre este erro, num ambiente diferente..de replicação...mas acredito que talvez os procedimentos podem ser aplicados. é um problema com Column ID das colunas.
Segundo o documento faça o seguinte :
1 - COpie todos os dados da sua tabela que estpa dando pau pra uma outra qualquer chamada tabela2 por exemplo
SELECT * INTO Table2
FROM TabelaComPau
2 - Drope a TabelaComPau e drope os objetos dependentes dela(triggres, procs etc...não se esqueça de fazer um script desses dependentes)
3 - USe a sp_rename pra renomar a TabelaComPau pro nome original dela
4 - Recrie todos os objetos dependentes dela (triggers, Sp...etc)
Segue o link original
http://support.microsoft.com/kb/241658/EN-US/
Segundo o documento faça o seguinte :
1 - COpie todos os dados da sua tabela que estpa dando pau pra uma outra qualquer chamada tabela2 por exemplo
SELECT * INTO Table2
FROM TabelaComPau
2 - Drope a TabelaComPau e drope os objetos dependentes dela(triggres, procs etc...não se esqueça de fazer um script desses dependentes)
3 - USe a sp_rename pra renomar a TabelaComPau pro nome original dela
4 - Recrie todos os objetos dependentes dela (triggers, Sp...etc)
Segue o link original
http://support.microsoft.com/kb/241658/EN-US/
O problema continua. De qualquer forma obrigado pela dica LAERTE.
Cara..faz o seguinte...identifique quais dos updates dá o erro....com select "passei por aqui" dentro da proc.
Depois de identificado qual update está dando problema, vá coluna por coluna e identifique em qual coluna ele dá o pau...
Fala pra gente o resultado
Depois de identificado qual update está dando problema, vá coluna por coluna e identifique em qual coluna ele dá o pau...
Fala pra gente o resultado
valeu LAERTE a sua idéia despertou em mim uma outra idéia que foi o seguinte:
coloquei um msgbox dos parà ¢metros que é passado p/store proc. do update, e percebi que um dos parà ¢metros era o valor que estava sendo passado com a ",". O total de parà ¢metro de minha proc. é 12, e por ele estar passando a "," junto aumentava para 13. Apliquei um CDBL() na coluna do valor e resolveu. Obrigado pela dica. Vou encerra o tópico, VALEU!!!!!
coloquei um msgbox dos parà ¢metros que é passado p/store proc. do update, e percebi que um dos parà ¢metros era o valor que estava sendo passado com a ",". O total de parà ¢metro de minha proc. é 12, e por ele estar passando a "," junto aumentava para 13. Apliquei um CDBL() na coluna do valor e resolveu. Obrigado pela dica. Vou encerra o tópico, VALEU!!!!!
Tópico encerrado , respostas não são mais permitidas