DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 13/8/2010 05:40:15 PM

estou querendo pegar o resultado de uma consulta sql tipo tenho um edit ai queria q quando o kra passasse para o campo de baixo com tab ou enter e deixasse o valor dele vazio ou 0 ele buscasse no banco verificasse q é um novo registo pega o ultimo ID e cria elenovo..ai fiz assim.. 

[CODE]
if (EIdUsu.Text='0') or (EIdUsu.Text='') then
     begin
       DataModule1.AdoQCadUsu.Close;
       DataModule1.ADOQCadUsu.SQL.Clear;
       DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) from TCadUsu');
       DataModule1.ADOQCadUsu.Open;
       EIdUsu.Text:= DataModule1.ADOQCadUsu.FieldValues['CodUsu'];
       EIdUsu.SetFocus;
     end;
[/CODE]

mais nao ta funcionando.. e eu coloco essa função em qual propriedade do edit.. onchange?
CARLOS EDUARDO DOMINGUES MAZZI
 

 


País: Brasil
Estado: SP
Cidade: LINS
Mensagens: 591
 Postado em: 15/8/2010 05:33:53 PM

Nao entendi.. isso tudo ée pra fazer um Incremento na chave primaria, ou o que?
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 15/8/2010 06:55:18 PM


  isso.. o q eu quero fazer é exatamente isso eu nao queria usar autoincrement pq tipo.. posso ter uma situação de 2 pessoas estarem efetuando um cadastro ao mesmo tempo.. com isso elas reservam ID diferentes e sequenciais dentro do banco. porem se uma delas cancela fica aquele "buraco" na sequencia de ID.. se existir alguma forma melhor de fazer isso.. blz.. sinceramente ainda nao descobri.. kkk mais gostaria de saber..  :) e depois preciso pegar esse resultado de um sql e trazer de volta para uma variavel.. tipo.. fiz um select como q eu trago o resultado de um select para uma variavel usando ADO
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 

 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 16/8/2010 07:34:13 AM

Que banco de dados você utiliza?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 16/8/2010 08:17:23 AM

if (EIdUsu.Text='0') or (EIdUsu.Text='') then
begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := 1 {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    EIdUsu.SetFocus;
end;
 
Coloque no onExit do EIdUsu.
 
Atenciosamente
 
Eriley
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 16/8/2010 08:18:47 AM

Faltou as aspas
if (EIdUsu.Text='0') or (EIdUsu.Text='') then
begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    EIdUsu.SetFocus;
end;
 
Coloque no onExit do EIdUsu.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 16/8/2010 07:44:34 PM


  o q significa o field[0] é o primeiro registro do banco por exemplo no meu banco é ID,NOME se eu quisesse pegar o nome seria field[1] ??
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 16/8/2010 08:02:08 PM

o q eu estou testando baseado na pergunta q eu fiz é isso

#Código
 if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' +
QuotedStr(EIdUsu.text) + ' ')
   ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
    end;
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 17/8/2010 09:07:34 AM

Quando você utiliza Select * from TCadUsu:
DataModule1.ADOQCadUsu.Fields[1].AsString corresponde ao segundo campo criado na sua tabela.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 09:41:44 AM

deu o erro "List Index out of Bounds"  com o codigo abaixo

#Código
if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' +
QuotedStr(EIdUsu.text) + ' ');
   ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
    end;

TIAGO MELO
 
 


País: Brasil
Estado: MT
Cidade: Varzea Grande
Mensagens: 57
 Postado em: 17/8/2010 10:16:52 AM

Fabio, por estar usando auto-incremente deve estar utilizando SQL Server certo? ou não?...mas seguinte o identity do SQL Server só gera o Id Quando Grava o result set...então vc não terá esse problema de deixar intervalos entre os id`s, caso não esteja utilizando SQL Server, diga o banco que está usando que irá nos ajudar a te ajudar.     Quanto ao e depois preciso pegar esse resultado de um sql e trazer de volta para uma variavel.. 
eu não entendi o que vc quer colocar na variavel...é o valor da chave gerada???
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 17/8/2010 10:30:51 AM


Citação:
deu o erro "List Index out of Bounds"  com o codigo abaixo

#Código
if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu = ' +
      EIdUsu.text);
   DataModule1.ADOQCadUsu.Open;
   if not (DataModule1.ADOQCadUsu.IsEmpty) then
     ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
end;
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 10:48:49 AM

isso.. eu estou utilizando sql server mesmo.. e essas linhas ai eu nao vou inserir no banco depois o campo ID vou deixar no increment.. ela serve apenas para eu saber o numero do registro q ele vai selecionar..  e quanto a solução enviada o erro parou de dar.. porque? o q significa aquele erro? e porem ele so nao me trouxe o resultado.. mais eu vou analisar o banco e ver os registros...
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 11:13:07 AM

testei aqui fiz o select com condição fixa where codusu=1 pq achei q ele pudesse nao estar buscando o valor do edit ja q esta no onexit dele.. mesmo assim nao funcionou

FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 11:14:01 AM

o codigo inteiro esta assim

#Código
procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
  if (EIdUsu.Text='0') or (EIdUsu.Text='') then
   begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    ENomUsu.SetFocus;
   end;
  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' +
     EIdUsu.text);
     if not (DataModule1.ADOQCadUsu.IsEmpty) then
       begin
        ShowMessage('certo');
        ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
       end;
       ShowMessage('errado');
    end;
end;

ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 17/8/2010 11:49:46 AM

Só vai retornar o nome do usuario, se o mesmo estiver gravado no banco de dados já, do contrario não retorna nada.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 01:00:15 PM

esse é o problema.. ele ta gravado.. verifiquei ja.. mais nao esta retornando nada... 
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 17/8/2010 01:01:07 PM

o resultado da consulta SQl esta retornando vazio.. eu fiz o select na mao e funcionou normalmente.. porem nao retorna nada... dando o showmessage('errado');
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 17/8/2010 01:51:09 PM


Citação:
o codigo inteiro esta assim

#Código
procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
  if (EIdUsu.Text='0') or (EIdUsu.Text='') then
   begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    ENomUsu.SetFocus;
   end;
  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' +
     EIdUsu.text);
   ShowMessage(DataModule1.ADOQCadUsu.SQL.Text);
   DataModule1.ADOQCadUsu.Open;
     if not (DataModule1.ADOQCadUsu.IsEmpty) then
       begin
        ShowMessage('certo');
        ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
       end;
       ShowMessage('errado');
    end;
end;

Você não tinha colocado o Open, na query, por isso dava sempre em branco:
DataModule1.ADOQCadUsu.Open;
 
Quando aparecer a mensagem na tela tecle ctrl + c e cole no sql server, retire as sujeiras e execute, se retornar alguma coisa pode apagar as linha que tem o showmessage, caso contrario poste o conteúdo do showmessage aqui.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 01:15:12 PM

camarada.. estou com uma duvida sobre herança aqui que é a seguinte

tenho o seguinte codigo para limpeza dos edits

#Código
procedure limpaedit(Form: FPrincipal);
var
i:integer
begin
with Form do
  for i:=0 to ComponentCount-1 do begin
        if (Components[i]).ClassName = 'TEdit' then
          Tedit(Components[i]).Clear;
  end;
end;

gostaria de colocar ele no frm principal e depois buscalo ou executar essa função em outros forms como q eu faço isso?

ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 18/8/2010 01:40:56 PM

Na seção public coloque:
    { Public declarations }
    procedure LimpaCampos;
 
Depois tecle Shift + Ctrl + C, para criar o corpo da procedure e digite:
 
 
var
  i : Word;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TEdit) then
       TEdit(Components[i]).Clear
end;
 
Depois para usar nos outros formulários basta declarar FPrincipal na clausula Uses e digitar:
FPrincipal.LimpaCampos;
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 01:47:36 PM

eriley, 

     esta dando erro no TEDIT     if (Components[i] is TEdit) then  identificador nao declarado.. precisa declarar o TEDIT como variave?? tipo WORD tbn? ou STRING?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 18/8/2010 01:53:20 PM

Declare StdCtrls na clausula uses.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 01:59:30 PM

so por curiosidade.. o q seria isso?
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 02:05:16 PM


  e eu fiz a função.. ele fez a chamada de forma correta..  so q nao limpou campo nenhum.. eu tenho 3 edits e um combobox. nao limpou campo nenhum.. e eu coloquei a chamada da função no onclick do botao cancelar.
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 18/8/2010 02:27:05 PM

Fiz o teste aqui e funcionou, veja o código que utilizei:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls{Biblioteca que contém o componente Edit};
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure LimpaCampos;
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  LimpaCampos;
end;

procedure TForm1.LimpaCampos;
var
  i : Word;
begin
  for i := 0 to ComponentCount - 1 do
    if (Components[i] is TEdit) then
       TEdit(Components[i]).Clear
end;
end.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 03:26:46 PM

o meu esta assim, eu fiz um teste e coloquei para dar um show dentro do for ele apareceu o dentro do for e fora o show dentro do IF nao apareceu.. parece q ele nao esta entrando dentro do if nao, sendo q no cadusu tem componentes tedit.

form principal

#Código
unit Uprincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TFPrincipal = class(TForm)
    MainMenu1: TMainMenu;
    Cadastro1: TMenuItem;
    Eventos1: TMenuItem;
    Cadastro2: TMenuItem;
    iposdeEventos1: TMenuItem;
    ProdutoServio1: TMenuItem;
    Operadores1: TMenuItem;
    Estoques1: TMenuItem;
    Movimentaes1: TMenuItem;
    Movimentaes2: TMenuItem;
    Produo1: TMenuItem;
    Apontamentos1: TMenuItem;
    Sair1: TMenuItem;
    Ajuda1: TMenuItem;
    Usurios1: TMenuItem;
    procedure Operadores1Click(Sender: TObject);
    procedure Sair1Click(Sender: TObject);
    procedure Usurios1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    procedure limpacampos;
  end;

var
  FPrincipal: TFPrincipal;

implementation

uses Ulogin, UCadOpr, UCadUsu, StdCtrls;

{$R *.dfm}

procedure TFPrincipal.limpacampos;
 var
  i : Word;
begin
  for i := 0 to ComponentCount - 1 do
    begin
    ShowMessage('dentro for');
    if (Components[i] isTEdit) then
      begin
       TEdit(Components[i]).Clear;
        ShowMessage('dentro if');
      end;
     end;
  ShowMessage('fora');
end;

procedure TFPrincipal.Operadores1Click(Sender: TObject);
begin
   FCadOpr.ShowModal;
end;

procedure TFPrincipal.Sair1Click(Sender: TObject);
begin
   FPrincipal.Close;
   Flogin.Close;
end;

procedure TFPrincipal.Usurios1Click(Sender: TObject);
begin
   FCadUsu.ShowModal;
end;


end.

form cadusu

#Código
unit UCadUsu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Buttons;

type
  TFCadUsu = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    EIdUsu: TEdit;
    ENomUsu: TEdit;
    EPassUsu: TEdit;
    ComboNivUsu: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DBNavigator1: TDBNavigator;
    BitBtn4: TBitBtn;
    Button1: TButton;
    procedure BitBtn4Click(Sender: TObject);
    procedure GroupBox1Enter(Sender: TObject);
    procedure EIdUsuExit(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FCadUsu: TFCadUsu;
  TipNiv : integer;
implementation

uses dmos, DB, Uprincipal;

{$R *.dfm}

procedure TFCadUsu.BitBtn4Click(Sender: TObject);
begin
   FCadUsu.Close;
end;

procedure TFCadUsu.GroupBox1Enter(Sender: TObject);
begin
 EIdUsu.SetFocus;
end;

procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
  if (EIdUsu.Text='0') or (EIdUsu.Text='') then
   begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    ENomUsu.SetFocus;
   end;
  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
   DataModule1.ADOQCadUsu.Open;
     if not (DataModule1.ADOQCadUsu.IsEmpty) then
       begin
        ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
        EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString;
        TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger;
         if (tipniv=1) then
           ComboNivUsu.ItemIndex:=0
            else
              ComboNivUsu.ItemIndex:=1;
       end;
    end;
end;

procedure TFCadUsu.BitBtn2Click(Sender: TObject);
begin
   FPrincipal.limpacampos;
end;

end.
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 18/8/2010 04:17:30 PM

form principal

#Código
unit Uprincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;

type
  TFPrincipal = class(TForm)
    MainMenu1: TMainMenu;
    Cadastro1: TMenuItem;
    Eventos1: TMenuItem;
    Cadastro2: TMenuItem;
    iposdeEventos1: TMenuItem;
    ProdutoServio1: TMenuItem;
    Operadores1: TMenuItem;
    Estoques1: TMenuItem;
    Movimentaes1: TMenuItem;
    Movimentaes2: TMenuItem;
    Produo1: TMenuItem;
    Apontamentos1: TMenuItem;
    Sair1: TMenuItem;
    Ajuda1: TMenuItem;
    Usurios1: TMenuItem;
    procedure Operadores1Click(Sender: TObject);
    procedure Sair1Click(Sender: TObject);
    procedure Usurios1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    procedure limpacampos(Controle: TWinControl);
  end;

var
  FPrincipal: TFPrincipal;

implementation

uses Ulogin, UCadOpr, UCadUsu;

{$R *.dfm}

procedure TFPrincipal.limpacampos(Controle: TWinControl);
var
  I: Integer;
  _rCompoSearch: TComponent;
begin
  if Controle is TForm then
    _rCompoSearch := Controle
  else
    _rCompoSearch := Controle.Owner;
  with _rCompoSearch do
    for I := 0 to ComponentCount - 1 do
    begin
      // Edit
      if (Components[I] is TEdit) then
        TEdit(Components[i]).Clear;
   end;
end;

procedure TFPrincipal.Operadores1Click(Sender: TObject);
begin
   FCadOpr.ShowModal;
end;

procedure TFPrincipal.Sair1Click(Sender: TObject);
begin
   FPrincipal.Close;
   Flogin.Close;
end;

procedure TFPrincipal.Usurios1Click(Sender: TObject);
begin
   FCadUsu.ShowModal;
end;


end.

form cadusu

#Código
unit UCadUsu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Buttons;

type
  TFCadUsu = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    EIdUsu: TEdit;
    ENomUsu: TEdit;
    EPassUsu: TEdit;
    ComboNivUsu: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DBNavigator1: TDBNavigator;
    BitBtn4: TBitBtn;
    Button1: TButton;
    procedure BitBtn4Click(Sender: TObject);
    procedure GroupBox1Enter(Sender: TObject);
    procedure EIdUsuExit(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FCadUsu: TFCadUsu;
  TipNiv : integer;
implementation

uses dmos, DB, Uprincipal;

{$R *.dfm}

procedure TFCadUsu.BitBtn4Click(Sender: TObject);
begin
   FCadUsu.Close;
end;

procedure TFCadUsu.GroupBox1Enter(Sender: TObject);
begin
 EIdUsu.SetFocus;
end;

procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
  if (EIdUsu.Text='0') or (EIdUsu.Text='') then
   begin
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
    ENomUsu.SetFocus;
   end;
  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
   DataModule1.ADOQCadUsu.Close;
   DataModule1.ADOQCadUsu.SQL.Clear;
   DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
   DataModule1.ADOQCadUsu.Open;
     if not (DataModule1.ADOQCadUsu.IsEmpty) then
       begin
        ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
        EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString;
        TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger;
         if (tipniv=1) then
           ComboNivUsu.ItemIndex:=0
            else
              ComboNivUsu.ItemIndex:=1;
       end;
    end;
end;

procedure TFCadUsu.BitBtn2Click(Sender: TObject);
begin
   FPrincipal.limpacampos(FCadUsu);
end;

end.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 04:48:11 PM

vou testar aqui.. na hora de fazer o meu insert.. é isso aqui mesmo?

      DataModule1.ADOQCadUsu.SQL.Add('Insert into TCadUsu values('','+ ENomUsu.Text +','+ EPassUsu.Text +','+ ComboNivUsu.ItemIndex')');
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 18/8/2010 04:52:42 PM

Este insert só funcionara se o número de campos da tabela for o mesmo que tu ta passando e se houverem campos string deverão ser passados dentro do comando QuotedStr
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 18/8/2010 08:55:56 PM

ok.. e no caso do combobox por ser itemindex é integer certo? a quantidade de campos esta certa la 4 campos ai o primeiro por ser autoincrement fica '' certo?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 19/8/2010 08:21:33 AM

Se o campo for integer é itemindex.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 20/8/2010 04:33:49 PM

estou com o codigo abaixo.. o q eu estou querendo fazer é o seguinte.

quando eu coloco valor VAZIO no meu Id era para ele entrar dentro do IF e fazer a verificação de novo codigo.. porem esta dando a seguinte mensagem de erro

"Projetc OS.exe raised exception class OEleException with message 'SINTAXE INCORRETA PROXIMA A '=' "

o codigo é o abaixo nao consegui entender o porque ainda.

#Código
procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
    DataModule1.ADOQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
    DataModule1.ADOQCadUsu.Open;
     if (DataModule1.ADOQCadUsu.IsEmpty) then
        begin
                TipOpr:=0;
                Fprincipal.limpaCampos(FCadUsu);
                EIdUsu.Text:='';
                EIdUsu.SetFocus;
                BInserir.Enabled:=True;
                BAlterar.Enabled:=False;
                DataModule1.AdoQCadUsu.Close;
                DataModule1.ADOQCadUsu.SQL.Clear;
                DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
                DataModule1.ADOQCadUsu.Open;
                if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
                     EIdUsu.Text := '1' {: então este será o 1º registro}
                        else
                      begin
                         EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
                         ENomUsu.SetFocus;
           end;

        end;
   BInserir.Enabled:=True;
   BAlterar.Enabled:=True;

  if (EIdUsu.Text='0') or (EIdUsu.Text='') then
   begin
    TipOpr:=0;
    BInserir.Enabled:=True;
    BAlterar.Enabled:=False;
    DataModule1.AdoQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
    DataModule1.ADOQCadUsu.Open;
    if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
       EIdUsu.Text := '1' {: então este será o 1º registro}
    else
      begin
       EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
       ENomUsu.SetFocus;
      end;
   end;


  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
    begin
    TipOpr:=1;
    BInserir.Enabled:=False;
    BAlterar.Enabled:=True;
    DataModule1.ADOQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
    DataModule1.ADOQCadUsu.Open;
     if not (DataModule1.ADOQCadUsu.IsEmpty) then
       begin
        ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
        EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString;
        TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger;
         if (tipniv=1) then
           ComboNivUsu.ItemIndex:=0
            else
              ComboNivUsu.ItemIndex:=1;
       end;
    end;

  end; //end procedure
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 20/8/2010 05:00:41 PM

#Código

procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
  if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
  begin
    DataModule1.ADOQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
    DataModule1.ADOQCadUsu.Open;
    if (DataModule1.ADOQCadUsu.IsEmpty) then
    begin
      TipOpr:=0;
      Fprincipal.limpaCampos(FCadUsu);
      EIdUsu.Text:='';
      EIdUsu.SetFocus;
      BInserir.Enabled:=True;
      BAlterar.Enabled:=False;
      DataModule1.AdoQCadUsu.Close;
      DataModule1.ADOQCadUsu.SQL.Clear;
      DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
      DataModule1.ADOQCadUsu.Open;
      if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
         EIdUsu.Text := '1' {: então este será o 1º registro}
      else
      begin
         EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
         ENomUsu.SetFocus;
      end;
    end
    else
    begin
      TipOpr:=1;
      BInserir.Enabled:=False;
      BAlterar.Enabled:=True;
      ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
      EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString;
      TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger;
      if (tipniv=1) then
        ComboNivUsu.ItemIndex:=0
      else
        ComboNivUsu.ItemIndex:=1;
    end;
  end
  else
    if (EIdUsu.Text='0') or (EIdUsu.Text='') then
    begin
      TipOpr:=0;
      BInserir.Enabled:=True;
      BAlterar.Enabled:=False;
      DataModule1.AdoQCadUsu.Close;
      DataModule1.ADOQCadUsu.SQL.Clear;
      DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
      DataModule1.ADOQCadUsu.Open;
      if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
         EIdUsu.Text := '1' {: então este será o 1º registro}
      else
      begin
        EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
        ENomUsu.SetFocus;
      end;
    end;
end; //end procedure

FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 21/8/2010 08:53:32 AM

camarada.. no insert aki eu tentei colocar o combobox.itemindex como parametro.. ele deu erro falando q é um parametro de lista ( ou algo assim ) entao eu tentei colocar o valor do combo em uma variave. ai quando eu coloquei a variavel no insert deu o erro "nome da coluna TipNiv inválido"

#Código
procedure TFCadUsu.BInserirClick(Sender: TObject);
begin
    TipNiv:=0;
  Case ComboNivUsu.ItemIndex of
    1 : TipNiv:=1;
    2 : TipNiv:=2;
  end;

  if (ComboNivUsu.ItemIndex=0) then
    ShowMessage('Favor selecionar um nível de Usuário')
     else
      begin
       DataModule1.AdoQCadUsu.Close;
       DataModule1.ADOQCadUsu.SQL.Clear;
       DataModule1.ADOQCadUsu.SQL.Add('Insert into TCadUsu values(' +QuotedStr(ENomUsu.Text)+ ',' +QuotedStr(EPassUsu.Text)+ ', TipNiv )');
       DataModule1.ADOQCadUsu.Open;
      end;
end;
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 21/8/2010 10:34:14 AM

Pelo visto TipNiv é uma variavel inteira e você está tentando colocar um inteiro no meio de uma string sem converter no seu insert.
Tente assim:
DataModule1.ADOQCadUsu.SQL.Add('Insert into TCadUsu values(' +QuotedStr(ENomUsu.Text)+ ',' +QuotedStr(EPassUsu.Text)+ ', ' + IntToStr(TipNiv) + ')');
       DataModule1.ADOQCadUsu.ExecSQL;
 
Para comandos que não retornam dados use ExecSql ao invés de open é só para ser usado com comando SELECT.
 
Atenciosamente
 
Eriley
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 21/8/2010 12:31:07 PM


  funcionou certinho.. agora estou precisando substituir os meus edits por dbedits pq vou precisar te uma navigator bar <| < > |>  so com esses itens para poder navegar nos registros.. porem o dbedit eu nao estou conseguindo digitar nenhum valor nele e ele ja traz automaticamente o primeiro registro.. isso se deve pelo fato de eu ter atribuido na propriedade dele o data field?

ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 21/8/2010 01:58:07 PM

Ai vai dar problema com o código que fizemos, poi,s dbedit só funciona se a query estiver ativa, só assim você conseguira digitar alguma coisa no dbedit.
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 21/8/2010 02:34:33 PM

mais tem como eu trabalhar com a dbnavigator com edit simples?? nem q seja fazendo na unha?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 23/8/2010 09:48:23 AM

Poste todo o código da sua unit aqui.
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 23/8/2010 10:18:45 AM

ta ai

#Código

unit UCadUsu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Buttons, Mask;

type
  TFCadUsu = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    ENomUsu: TEdit;
    EPassUsu: TEdit;
    ComboNivUsu: TComboBox;
    BInserir: TBitBtn;
    BCancelar: TBitBtn;
    DBNavigator1: TDBNavigator;
    BSair: TBitBtn;
    Button1: TButton;
    BAlterar: TBitBtn;
    BitBtn1: TBitBtn;
    EIdUsu: TEdit;
    procedure BSairClick(Sender: TObject);
    procedure GroupBox1Enter(Sender: TObject);
    procedure EIdUsuExit(Sender: TObject);
    procedure BCancelarClick(Sender: TObject);
    procedure BInserirClick(Sender: TObject);
    procedure EIdUsuKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FCadUsu: TFCadUsu;
  TipNiv,TipOpr,CanCad : integer;
implementation

uses dmos, DB, Uprincipal;

{$R *.dfm}

procedure TFCadUsu.BSairClick(Sender: TObject);
begin
   FCadUsu.Close;
end;

procedure TFCadUsu.GroupBox1Enter(Sender: TObject);
begin
 EIdUsu.SetFocus;
end;

procedure TFCadUsu.EIdUsuExit(Sender: TObject);
begin
if (EIdUsu.Text<>'0') and (EIdUsu.Text<>'') then
  begin
    DataModule1.ADOQCadUsu.Close;
    DataModule1.ADOQCadUsu.SQL.Clear;
    DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu where codusu=' + EIdUsu.text);
    DataModule1.ADOQCadUsu.Open;
    if (DataModule1.ADOQCadUsu.IsEmpty) then
    begin
      TipOpr:=0;
      Fprincipal.limpaCampos(FCadUsu);
      EIdUsu.Text:='';
      BInserir.Enabled:=true;
      BAlterar.Enabled:=false;
      DataModule1.AdoQCadUsu.Close;
      DataModule1.ADOQCadUsu.SQL.Clear;
      DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
      DataModule1.ADOQCadUsu.Open;
      if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
         EIdUsu.Text := '1' {: então este será o 1º registro}
      else
      begin
         EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
         ENomUsu.SetFocus;
      end;
    end
    else
    begin
      TipOpr:=1;
      BInserir.Enabled:=False;
      BAlterar.Enabled:=True;
      ENomUsu.Text := DataModule1.ADOQCadUsu.Fields[1].AsString;
      EPassUsu.Text := DataModule1.ADOQCadUsu.Fields[2].AsString;
      TipNiv := DataModule1.ADOQCadUsu.Fields[3].AsInteger;
      if (tipniv=1) then
        ComboNivUsu.ItemIndex:=1
      else
        ComboNivUsu.ItemIndex:=2;
    end;
  end
  else
    if (EIdUsu.Text='0') or (EIdUsu.Text='') then
    begin
      TipOpr:=0;
      BInserir.Enabled:=True;
      BAlterar.Enabled:=False;
      DataModule1.AdoQCadUsu.Close;
      DataModule1.ADOQCadUsu.SQL.Clear;
      DataModule1.ADOQCadUsu.SQL.Add('Select MAX(CodUsu) CodUsu from TCadUsu');
      DataModule1.ADOQCadUsu.Open;
      if DataModule1.ADOQCadUsu.Fields[0].IsNull then {: se atabela está vazia, retornará nulo}
         EIdUsu.Text := '1' {: então este será o 1º registro}
      else
      begin
        EIdUsu.Text := IntToStr(DataModule1.ADOQCadUsu.Fields[0].AsInteger+1);
        ENomUsu.SetFocus;
      end;
    end;
end; //end procedure


procedure TFCadUsu.BCancelarClick(Sender: TObject);
begin
 Fprincipal.limpaCampos(FCadUsu);
 ComboNivUsu.ItemIndex:=0;
 EIdUsu.SetFocus;
 BInserir.Enabled:=True;
 BAlterar.Enabled:=True;

end;

procedure TFCadUsu.BInserirClick(Sender: TObject);
begin
    TipNiv:=0;
  Case ComboNivUsu.ItemIndex of
    1 : TipNiv:=1;
    2 : TipNiv:=2;
  end;
   if (ComboNivUsu.ItemIndex=-1) then
    begin
       ComboNivUsu.SetFocus;
       ShowMessage('Favor selecionar um nível de Usuário');
    end
     else
      begin
       { DataModule1.ADOTCadUsu.Open; //abrir a tabela
       DataModule1.ADOTCadUsu.Edit; //permitir inserir dados na tabela
       DataModule1.ADOTCadUsu.Insert; // iniciar a inserção dos dados
       DataModule1.ADOTCadUsu.FieldByName('NomUsu').Value:=ENomUsu.Text;
       DataModule1.ADOTCadUsu.FieldByName('PasUsu').Value:=EPassUsu.Text;
       DataModule1.ADOTCadUsu.FieldByName('NivUsu').Value:=ComboNivUsu.ItemIndex;
       DataModule1.ADOTCadUsu.Post; }
       DataModule1.AdoQCadUsu.Close;
       DataModule1.ADOQCadUsu.SQL.Clear;
       DataModule1.ADOQCadUsu.SQL.Add('Insert into TCadUsu values(' +QuotedStr(ENomUsu.Text)+ ',' +QuotedStr(EPassUsu.Text)+ ','+ IntToStr(TipNiv) +')');
       DataModule1.ADOQCadUsu.ExecSQL;
       FPrincipal.limpacampos(FCadUsu);
       EIdUsu.SetFocus;

      end;
end;


procedure TFCadUsu.EIdUsuKeyPress(Sender: TObject; var Key: Char);
begin
if not( key in['0'..'9',#38,#13] ) then
 begin
   Key:= #0;
   ShowMessage('Favor Insira Apenas Números');
 end;
end;

end.

ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 23/8/2010 10:56:04 AM

Se você só quer usar o DBNavigator para mostrar os registros inseridos faça assim:
Coloque um Datasource no form e ligue ao DataModule1.ADOQCadUsu.
Ligue o DBNavigator ao Datasource.
Deixe apenas os botoes de navegação do Datasource visiveis através da propriedade:
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast]
No onclick do DBNavigator digite:
if not(DataModule1.ADOQCadUsu.Active) then
  DataModule1.ADOQCadUsu.Open;
if not(DataModule1.ADOQCadUsu.IsEmpty) then
begin
  ENomUsu.Text := DataModule1.ADOTCadUsu.FieldByName('NomUsu').Value;
  EPassUsu.Text := DataModule1.ADOTCadUsu.FieldByName('PasUsu').Value;
  ComboNivUsu.ItemIndex := DataModule1.ADOTCadUsu.FieldByName('NivUsu').Value;
  EIdUsu.Text := DataModule1.ADOTCadUsu.FieldByName('CodUsu').AsString;
end;

No onShow do seu formulário, digite:
DataModule1.ADOQCadUsu.Close;
DataModule1.ADOQCadUsu.SQL.Clear;
DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu');
DataModule1.ADOQCadUsu.Open;

Atenção após inserir ou cancelar um registro, esta mesma instrução deve ser colocada:
Inserir:
FPrincipal.limpacampos(FCadUsu);
DataModule1.ADOQCadUsu.Close;
DataModule1.ADOQCadUsu.SQL.Clear;
DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu');
DataModule1.ADOQCadUsu.Open;
EIdUsu.SetFocus;

Cancelar:
Fprincipal.limpaCampos(FCadUsu);
ComboNivUsu.ItemIndex:=0;
DataModule1.ADOQCadUsu.Close;
DataModule1.ADOQCadUsu.SQL.Clear;
DataModule1.ADOQCadUsu.SQL.Add('Select * from TCadUsu');
DataModule1.ADOQCadUsu.Open;
EIdUsu.SetFocus;

FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 23/8/2010 02:04:01 PM

funcionou bem.. so me explique o que foi feito... qual o motivo de ter a selecionar sempre a tabela inteira??? tenho uns outros cadastros para fazer.. tela.. é melhor usar sempre o dbedit? ou usar o edit mesmo?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 23/8/2010 02:15:33 PM

É para que se possa navegar pelos registros, pois, você está fazendo Insert na unha, logo sua query contem um Insert e não um select.
 
Outra coisa, quando você está navegando, ou consultando através do onexit  e deseja alterar um registro, como você faz, pois, pelo código que passou só ta fazendo insert e não Update?
FABIO SANCHES
 


País: Brasil
Estado: ES
Cidade: CACHOEIRO DE ITAPEMIRIM
Mensagens: 78
 Postado em: 23/8/2010 03:19:30 PM

entao é mais viavel usar sempre dbedit quando for efetuar essas transações com banco certo?
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 23/8/2010 03:21:11 PM

Sim é melhor utilizar dbEdit.
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03