Array
(
)

Editar registro no Delphi 2006 ASP.Net e Firebird

Pauloroger
   - 30 nov 2006

Shalom Delphiamos...

Estou com dificuldade de editar registros em BDS 2006 ASP.Net e Firebird, gostaria de selecionar um registro via DBGrid, até funciona, porem quando altero os registro, não grava, ou dá erro, em:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

Source Error:

Line 207: begin
Line 208:
Line 209: Parameters[´@DESCRICAO´].Value := txtDescricao.Text; <erro aqui
Line 210: Parameters[´@NOTA_FISCAL´].Value := txtNotaFiscal.Text;
Line 211: Parameters[´@FORNECEDOR´].Value := txtFornecedor.Text;

Já tentei de tudo, mas acho que chegou no meumlimite de conhecimento, estou recorrendo a vcs. grato

Paulo F.

Maikel
   - 02 jan 2007

Olá amigo...

Não sei qual sua estrutura de componentes ai... eu sempre faço os comandos de edit somente via código... assim:

BdpCom:=FbCommand.Create(´UPDATE MARCA SET MARCA= ?, STATUS= ? WHERE (ID_MARCA = ?)´,dados.CONEXAO);
BdpCom.Parameters.Clear;
BdpCom.Parameters.Add(´MARCA´,BdpType.&String);
BdpCom.Parameters.Add(´STATUS´,BdpType.&String);
BdpCom.Parameters.Add(´ID_MARCA´,BdpType.&String);
//------------------------------------------
BdpCom.Parameters[´MARCA´].Value := MARCA;
BdpCom.Parameters[´STATUS´].Value := STATUS;
BdpCom.Parameters[´ID_MARCA´].Value := ID_MARCA;
if BdpCom.ExecuteNonQuery > 0 Then
begin
RETORNO:=´O registro foi alterado com Sucesso!´;
Result := True;
end;

Onde BpdCom:FbCommand
BdpRead=FbDataReader;

No seu caso ai... podem ser dois os casos de erro... você tem certeza que esta passando os parametros de forma correta...?? Esse ´@´ ai existe... tente passar sem ele.... ou... na hora de pegar o valor que tem em um textBox.... não use NomeTextBox.Text, mas use Request[´NomeTextBox´].ToString;
Em alguns casos o delphi não consegue recuperar os valores que foram jogados a um textbox pelo sistema....

Tente ver isso ai.... qualquer coisa... poste de novo..

T+