TSQLStoredproc...

Firebird

23/09/2005

Meu problema é bem estranho

Details:

[color=darkred:2cc3642f52]# Systems
Delphi 7
Firebird 1.5
Windows XP[/color:2cc3642f52]

[color=red:2cc3642f52] Program

object SQLConnectionPS: TSQLConnection
ConnectionName = ´Firebird´
DriverName = ´Interbase´
GetDriverFunc = ´getSQLDriverINTERBASE´
LibraryName = ´dbexpint.dll´
LoginPrompt = False
Params.Strings = (
´DriverName=Interbase´
´BlobSize=-1´
´CommitRetain=False´
´Database=c:\psbiolite\PSBIOLITE.Fdb´
´ErrorResourceFile=´
´LocaleCode=0000´
´Password=masterkey´
´RoleName=RoleName´
´ServerCharSet=win1252´
´SQLDialect=3´
´Interbase TransIsolation=ReadCommited´
´User_Name=sysdba´
´WaitOnLocks=True´)
VendorLib = ´c:\psbiolite\fbclient.dll´
Connected = True
Left = 8
Top = 336
end
[/color:2cc3642f52]
[color=brown:2cc3642f52]# SToredProc in Delphi
object SQLStoredProcAlterar: TSQLStoredProc
MaxBlobSize = -1
Params = <
item
DataType = ftInteger
Name = ´ID´
ParamType = ptInput
end
item
DataType = ftString
Name = ´NOME´
ParamType = ptInput
end
SQLConnection = SQLConnectionPS
StoredProcName = ´PROC_ALTER_PS´
Left = 8
Top = 496
end
[/color:2cc3642f52]
[color=green:2cc3642f52] SToredProc in Firebird
SET TERM ^ ;

CREATE PROCEDURE PROC_ALTER_PS (
ID INTEGER,
NOME VARCHAR(60)
AS
begin
UPDATE ´ps´ SET NOME = :NOME
where ´id´ = :id;
WHEN ANY do
exception erro_atualizacao;
END
^
SET TERM ; ^
GRANT SELECT,UPDATE ON ´ps´ TO PROCEDURE PROC_ALTER_PS;
GRANT EXECUTE ON PROCEDURE PROC_ALTER_PS TO SYSDBA;
[/color:2cc3642f52]


[color=blue:2cc3642f52]# Delphi Code
procedure TF_PS.ActionConfirmarExecute(Sender: TObject);
begin
With SQLStoredProcAlterar do
ParamByName(´NOME´).AsString := LabeledEditPS.Text;
Try
SQLStoredProcAlterar.ExecProc;
Except
on E:Exception do
Begin
MessageDlg(E.Message,mtError, [mbok],0 );
Abort;
end;
end;
End;//end do with
end;
[/color:2cc3642f52]

[b:2cc3642f52] PROBLEM

Eu tenho 3 TSQLStoredProc

1 - Para incluir
2 - Para alterar
3 - Para excluir

O 1 e o 3 trabalham bem

2 - Alterar, nunca altera nada.....

Se eu usar a SP, dentro do IBExpert ele funciona bem... sem problemas... altera perfeitamente, ou seja o problema está entre a aplicação e o banco

Mas o código parece estar correto[/b:2cc3642f52]


Xupacabr@

Xupacabr@

Curtidas 0

Respostas

Afarias

Afarias

23/09/2005

|With SQLStoredProcAlterar do
|ParamByName(´NOME´).AsString := LabeledEditPS.Text;

nome é o único parâmetro q vc tem q definir?!?! em q momento vc define o parâmetro ID?


T+


GOSTEI 0
Armando.boza

Armando.boza

23/09/2005

|With SQLStoredProcAlterar do |ParamByName(´NOME´).AsString := LabeledEditPS.Text; nome é o único parâmetro q vc tem q definir?!?! em q momento vc define o parâmetro ID? T+


Tb quero saber????


GOSTEI 0
Xupacabr@

Xupacabr@

23/09/2005

Function Jumento:Boolean;
Var Asnice:LongInt;
Begin
Asnice := FATORIAL(´Perdões´, 1000)´;
If Asnice = 0 Then
Result := False
Else
Result := True
End;

É a função vai retornar JUMENTO=True...

No afã de colar aqui o código, pulei o ID... mas o ID está no programa...

ParamByName(´ID´).AsInteger := StrToInt(LabeledEditID.Text);


GOSTEI 0
Armando.boza

Armando.boza

23/09/2005

[quote:676b76415d=´xupacabr@´]Function Jumento:Boolean;
Var Asnice:LongInt;
Begin
Asnice := FATORIAL(´Perdões´, 1000)´;
If Asnice = 0 Then
Result := False
Else
Result := True
End;

É a função vai retornar JUMENTO=True...

No afã de colar aqui o código, pulei o ID... mas o ID está no programa...

ParamByName(´ID´).AsInteger := StrToInt(LabeledEditID.Text);[/quote:676b76415d]

Estávamos só com uma dúvida.

Espero que a palavra ´JUMENTO´ não esteja dirijida para os colegas aqui do forum que responderam, pois se estiver com certeza o moderador vai tomar suas providencias.

Att

Armando


GOSTEI 0
Vinicius2k

Vinicius2k

23/09/2005

Acalmemo-nos...

Já tive que intervir em discussões com ofensas entre os usuários, mas, sinceramente, é a primeira vez que vejo algum colega ofender a si mesmo. :roll:

Não há nada nas regras sobre isso. Não posso fazer nada... :)

T+


GOSTEI 0
Armando.boza

Armando.boza

23/09/2005

Acalmemo-nos... Já tive que intervir em discussões com ofensas entre os usuários, mas, sinceramente, é a primeira vez que vejo algum colega ofender a si mesmo. :roll: Não há nada nas regras sobre isso. Não posso fazer nada... :) T+


boa

aproveitando Vinicius ... baixei e to usando o VDOPrint e o VDOUtils, estão funcionando legal ... muito bom mesmo.

pq vc não cria um ´VDOPack´ ou ´VDOLib´ com tudo dentro já .... só uma ideia.


GOSTEI 0
Xupacabr@

Xupacabr@

23/09/2005

[quote:aeb6d2838d=´xupacabr@´]Function Jumento:Boolean; Var Asnice:LongInt; Begin Asnice := FATORIAL(´Perdões´, 1000)´; If Asnice = 0 Then Result := False Else Result := True End; É a função vai retornar JUMENTO=True... No afã de colar aqui o código, pulei o ID... mas o ID está no programa... ParamByName(´ID´).AsInteger := StrToInt(LabeledEditID.Text);


Estávamos só com uma dúvida.

Espero que a palavra ´JUMENTO´ não esteja dirijida para os colegas aqui do forum que responderam, pois se estiver com certeza o moderador vai tomar suas providencias.

Att

Armando[/quote:aeb6d2838d]


Bahhhhhhhhh

companheiro, é só compilar a função !

O salto para a evolução começa quando reconhecemos a nossa ignorância !

Definitivamente sou uma besta !




Acalmemo-nos... Já tive que intervir em discussões com ofensas entre os usuários, mas, sinceramente, é a primeira vez que vejo algum colega ofender a si mesmo. :roll: Não há nada nas regras sobre isso. Não posso fazer nada... :) T+


Isso aê, cai no mato amigo !

Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!! Eu sou uma besta !!!

Ufa pronto... me sinto até melhor !




[quote:aeb6d2838d=´armando.boza´]
Acalmemo-nos... Já tive que intervir em discussões com ofensas entre os usuários, mas, sinceramente, é a primeira vez que vejo algum colega ofender a si mesmo. :roll: Não há nada nas regras sobre isso. Não posso fazer nada... :) T+


boa

aproveitando Vinicius ... baixei e to usando o VDOPrint e o VDOUtils, estão funcionando legal ... muito bom mesmo.

pq vc não cria um ´VDOPack´ ou ´VDOLib´ com tudo dentro já .... só uma ideia.[/quote:aeb6d2838d]

Opa !

Desvirtuando do assunto, hummm se foi esse seu objetivo tenho certeza
que o moderador vai tomar suas providencias.

:)



#
Continuando....

Desinstalei o Delphi 7, e instalei de novo e permaneceu...

Desinstalei o Delphi 7, e apaguei os diretórios da Borland.... as coisas estavam muito estranhas e como essa minha máquina já passou o Delphi 4,5,6 e 7 achei que deveria em algum lugar nas entranhas do meu pczinho maldito...

Limei,
Sentei o Dedo,
Apaguei literalmente Arquivos de programas/Borland e arquivos comuns/borland

Reinstalei tudo de novo e funcionou...

Caramba ! Se o IBO, e o DBX estão com o mesmo problema... o problema não está neles... é um problema externo a aplicação ...

Pimba !

Manda um beijo na testa do gladstone que está me devendo um chopp

Muito obrigado a todos e um forte abraço do assinante número um da ClubeDelphi (Foi tudo culpa minha ... :( )


GOSTEI 0
Xupacabr@

Xupacabr@

23/09/2005

hummm a bruxa está solta... agora está dando erro de conversão de string VOODOO da silva...


Olha que esdrúxulo !


//FUNCIONA até aqui.......... /////////////////////////
Case RadioGroupSexo.ItemIndex of
0:P.ParamByName(´SEXO´).AsString := ´M´;
1:P.ParamByName(´SEXO´).AsString := ´F´
end;

//Daqui pra frente começa a dar erro
Case RadioGroupOcupacao.ItemIndex of
0:P.ParamByName(´OCUPACAO´).AsString := ´Medico´;
1:P.ParamByName(´OCUPACAO´).AsString := ´Instrumentador´;
2:P.ParamByName(´OCUPACAO´).AsString := ´Farmaceutico´;
end;


EDatabaseError Convertion error from string ´5.1345634563456434563e´


Ocupação na tabela é VARCHAR 50
Sexo é char 1

Antes de sexo tenho outros campos varchar funcionando bem, tipo nome..


Tenho visto bastante esse problema em DATAS e BLOB, mas em campo string inserindo string hummm


GOSTEI 0
POSTAR