Gravando em branco no Banco de dados

31/03/2016

0

Pessoal estou com um probleminha aqui.
Estou usando SQLServer e os componentes ADO.
Usando uma ADOQuery para inserir dados.
O problema:
- quando uso um DBEdit não dá erro nenhum, porem quando consulta o banco está em branco.
- usando a mesma instrução mas com um Edit não dá erro na gravação e aparece tudo quando se consulta o banco.
o que pode estar acontecendo
Exemplo do codigo:
 with qrPadrao do
    begin
     close;
     sql.clear;
    sql.add('insert into CLIENTE (nome)');
   sql.add('values (:nome)');
   parameters.parambyname('nome').value := dbedit1.text;
  execSQL;
   
end;
Renato Sanches

Renato Sanches

Responder

Post mais votado

31/03/2016

with DM.qrPadrao do
begin
close;
sql.clear;
SQL.Add('insert into CLIENTE values(:NOME)');
Parameters.ParamByName('NOME').Value :=Edit1.Text;

TRY
execSQL;
ShowMessage('Insert realizado com sucesso');

EXCEPT
ShowMessage('Falha no Insert');

END;
end;

Raimundo Pereira

Raimundo Pereira
Responder

Mais Posts

01/04/2016

Raylan Zibel

Tente:
Parameters.ParamByName('NOME').AsString := dbedit1.Field.AsString;
Responder

01/04/2016

Raylan Zibel

with DM.qrPadrao do
begin
close;
sql.clear;
SQL.Add('insert into CLIENTE values(:NOME)');
Parameters.ParamByName('NOME').Value :=Edit1.Text;

TRY
execSQL;
ShowMessage('Insert realizado com sucesso');

EXCEPT
ShowMessage('Falha no Insert');

END;
end;

Ou
TRY
  execSQL;
  ShowMessage('Insert realizado com sucesso');
EXCEPT
   on e: Exception do
   begin
      ShowMessage('Falha no Insert: ' + e.message);
   end;
END;
Responder

01/04/2016

Renato Sanches

Pessoal valeu pelas dicas mas o problema persiste não da erros ao gravar porém se usar dbedit grava mas em branco. Com edit funciona beleza.
Responder

01/04/2016

Raylan Zibel

Tente:
with qrPadrao do
    begin
     close;
     sql.clear;
    sql.add('insert into CLIENTE (nome)   ');
   sql.add('  values ('+ QuotedStr(dbedit1.text) +')');;
  execSQL;
    
end;

Se tem valor no "dbedit1.text", tem que funcionar. Senão é alguma coisa no seu banco. Faltando PK ou alguma trigger.
Responder

02/04/2016

Renato Sanches

Eu olhei no banco e está com pk. Se coloco o dbedit lingando ao data source se estou no delphi ele traz certinho o q está no banco, desde que não foi gravado por ele. Troquei o dbedit e nada. O duro que foi do nada q começou. Estou usando dbedit somente numa tela pois prefiro que esteja desconectado do banco. Nessa tela o objetivo era ao abrir o usuário ver alguns dados. Vou ter q contornar a situação usando outra forma.
Responder

02/04/2016

Raimundo Pereira

Brother.

Geralmente, não uso o Dbedit, pois o mesmo deve está conectado ao banco de dados.

Nas rotinas de insert, edit e consulta eu uso um Tedit

Agora se você usar o dbedit, você localizar um determinado registro na tabela para que seja mostrado o valor correto.

Ou seja depois do insert você realiza o lacate.


DM.qrPadrao.locate('CAMPO_A_LOCALIZAR',EDIT1.TEXT,[]);// Vai buscar o registro e focar no mesmo
espero que ajude
Responder

02/04/2016

Renato Sanches

E mais ou menos isso. O cliente quer que quando abra o formulário esteja visível para ele. Um dbedit faria isso. Como deu essa zica o jeito vai ser o edit receber os valores da query assim que o formulário abrir.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar