buscar resultado sql
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;mais nao ta funcionando.. e eu coloco essa função em qual propriedade do edit.. onchange?
Fabio Sanches
Respostas
Carlos Mazzi
13/08/2010
Fabio Sanches
13/08/2010
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 Junior
13/08/2010
Eriley Barbosa
13/08/2010
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 Barbosa
13/08/2010
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
13/08/2010
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
13/08/2010
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 Barbosa
13/08/2010
Fabio Sanches
13/08/2010
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
13/08/2010
Eriley Barbosa
13/08/2010
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;
Fabio Sanches
13/08/2010
Fabio Sanches
13/08/2010
Fabio Sanches
13/08/2010
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 Barbosa
13/08/2010
Fabio Sanches
13/08/2010
Fabio Sanches
13/08/2010
Eriley Barbosa
13/08/2010
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;
Fabio Sanches
13/08/2010
tenho o seguinte codigo para limpeza dos edits
procedure limpaedit(Form: FPrincipal);vari:integerbeginwith 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 Barbosa
13/08/2010
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
13/08/2010
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 Barbosa
13/08/2010
Fabio Sanches
13/08/2010
Fabio Sanches
13/08/2010
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 Barbosa
13/08/2010
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
13/08/2010
form principal
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
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 Barbosa
13/08/2010
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
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.
Fabio Sanches
13/08/2010
DataModule1.ADOQCadUsu.SQL.Add('Insert into TCadUsu values('','+ ENomUsu.Text +','+ EPassUsu.Text +','+ ComboNivUsu.ItemIndex')');
Eriley Barbosa
13/08/2010
Fabio Sanches
13/08/2010
Eriley Barbosa
13/08/2010
Fabio Sanches
13/08/2010
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.
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 Barbosa
13/08/2010
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
13/08/2010
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 Barbosa
13/08/2010
Fabio Sanches
13/08/2010
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 Barbosa
13/08/2010
Fabio Sanches
13/08/2010
Eriley Barbosa
13/08/2010
Fabio Sanches
13/08/2010
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 Barbosa
13/08/2010
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
13/08/2010
Eriley Barbosa
13/08/2010
Fabio Sanches
13/08/2010
Eriley Barbosa
13/08/2010