Trocar Boolean por Char(1) no Firebird 2.5.2
24/04/2013
0
Acho que nessa unit teria que trocar onde é TRUE, por S e FALSE por N
Esse trecho de código tem haver:
+ QuotedStr ('N'); .AsString := ‘N’;
Segue unit:
unit untFrmPermissoesUsuarios; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, DBCtrls, StdCtrls, Buttons, DB; type TFrmPermissoesUsuarios = class(TForm) Label1: TLabel; dbUsuarios: TDBLookupComboBox; Panel1: TPanel; Label2: TLabel; btnFechar: TBitBtn; cbConsultar: TCheckBox; cbIncluir: TCheckBox; cbExcluir: TCheckBox; cbAlterar: TCheckBox; btnSalvar: TBitBtn; dsLookupUsuarios: TDataSource; tvMenus: TTreeView; procedure btnFecharClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure dbUsuariosKeyPress(Sender: TObject; var Key: Char); procedure dbUsuariosCloseUp(Sender: TObject); procedure btnSalvarClick(Sender: TObject); procedure tvMenusClick(Sender: TObject); private semDireitosTela : Boolean; procedure CarregarMenus; procedure LimparLista; procedure CarregarDireitosUsuarioMenu(const codUsuario, codMenu: Integer); procedure HabilitarOpcoes(const tof : Boolean); function retornaNoPai(codPai: Integer): TTreeNode; procedure verificarPermissaoMenuPai(const no: TTreeNode); { Private declarations } public { Public declarations } end; var FrmPermissoesUsuarios: TFrmPermissoesUsuarios; implementation uses untDMPrincipal, untDMCadastros, SqlExpr; {$R *.dfm} procedure TFrmPermissoesUsuarios.btnFecharClick(Sender: TObject); begin Close; end; function TFRmPermissoesUsuarios.retornaNoPai(codPai : Integer) : TTreeNode; var i : Integer; begin Result := nil; for i := 0 to Pred(tvMenus.Items.Count) do if Integer(tvMenus.Items[i].Data) = codPai then begin Result := tvMenus.Items[i]; Exit; end; end; procedure TFrmPermissoesUsuarios.CarregarMenus; var no : TTreeNode; begin tvMenus.Items.Clear; with DMPrincipal.datasetAux do begin Close; CommandText := 'SELECT MEN_CODIGO, MEN_NOME, MEN_CODIGOPAI FROM MENUS ORDER BY MEN_CODIGO'; Open; First; while not Eof do begin if FieldByName('MEN_CODIGOPAI').AsString = '' then tvMenus.Items.AddObject(nil, FieldByName('MEN_NOME').AsString, Pointer(FieldByName('MEN_CODIGO').AsInteger)) else begin no := retornaNoPai(FieldByName('MEN_CODIGOPAI').AsInteger); if Assigned(no) then tvMenus.Items.AddChildObject(no, FieldByName('MEN_NOME').AsString, Pointer(FieldByName('MEN_CODIGO').AsInteger)); end; Next; end; end; end; procedure TFrmPermissoesUsuarios.HabilitarOpcoes(const tof : Boolean); begin cbConsultar.Checked := False; cbConsultar.Enabled := tof; cbIncluir.Checked := False; cbIncluir.Enabled := tof; cbAlterar.Checked := False; cbAlterar.Enabled := tof; cbExcluir.Checked := False; cbExcluir.Enabled := tof; end; procedure TFrmPermissoesUsuarios.FormCreate(Sender: TObject); begin dsLookupUsuarios.DataSet.Open; btnSalvar.Enabled := False; HabilitarOpcoes(False); semDireitosTela := False; end; procedure TFrmPermissoesUsuarios.FormClose(Sender: TObject; var Action: TCloseAction); begin dsLookupUsuarios.DataSet.Close; end; procedure TFrmPermissoesUsuarios.LimparLista; begin tvMenus.Items.Clear; end; procedure TFrmPermissoesUsuarios.dbUsuariosKeyPress(Sender: TObject; var Key: Char); begin if Key = #27 then begin dbUsuarios.KeyValue := -1; btnSalvar.Enabled := False; HabilitarOpcoes(False); LimparLista; end; end; procedure TFrmPermissoesUsuarios.dbUsuariosCloseUp(Sender: TObject); begin if dbUsuarios.Text <> '' then CarregarMenus; end; procedure TFrmPermissoesUsuarios.CarregarDireitosUsuarioMenu(const codUsuario, codMenu : Integer); begin with DMPrincipal.datasetAux do begin Close; CommandText := 'SELECT PU_NOVO, PU_ALTERAR, PU_APAGAR, PU_CONSULTAR ' + ' FROM PERMISSOES_USUARIOS ' + ' WHERE USU_CODIGO = ' + IntToStr(codUsuario) + ' AND MEN_CODIGO = ' + IntToStr(codMenu); Open; if not IsEmpty then begin semDireitosTela := False; cbConsultar.Checked := FieldByName('PU_CONSULTAR').AsBoolean; cbIncluir.Checked := FieldByName('PU_NOVO').AsBoolean; cbAlterar.Checked := FieldByName('PU_ALTERAR').AsBoolean; cbExcluir.Checked := FieldByName('PU_APAGAR').AsBoolean; end else begin semDireitosTela := True; cbConsultar.Checked := False; cbIncluir.Checked := False; cbAlterar.Checked := False; cbExcluir.Checked := False; end; end; end; procedure TFrmPermissoesUsuarios.verificarPermissaoMenuPai(const no : TTreeNode); begin with DMPrincipal.datasetAux do begin Close; CommandText := 'SELECT PU_CONSULTAR FROM PERMISSOES_USUARIOS WHERE USU_CODIGO = ' + IntToStr(dbUsuarios.KeyValue) + ' AND MEN_CODIGO = ' + IntToStr(Integer(no.Data)); Open; if IsEmpty then begin Close; CommandText := 'INSERT INTO PERMISSOES_USUARIOS (USU_CODIGO, MEN_CODIGO, PU_CONSULTAR) ' + 'VALUES (' + IntToStr(dbUsuarios.KeyValue) + ', ' + IntToStr(Integer(no.Data)) + ', ' + BoolToStr(cbConsultar.Checked, True) + ')'; ExecSQL(True); end else if not Fields[0].AsBoolean then begin Close; CommandText := 'UPDATE PERMISSOES_USUARIOS SET PU_CONSULTAR = True ' + ' WHERE USU_CODIGO = ' + IntToStr(dbUsuarios.KeyValue) + ' AND MEN_CODIGO = ' + IntToStr(Integer(no.Data)); ExecSQL(True); end; end; if Assigned(no.Parent) then verificarPermissaoMenuPai(no.Parent); end; procedure TFrmPermissoesUsuarios.btnSalvarClick(Sender: TObject); begin if not (cbConsultar.Checked) and ((cbIncluir.Checked) or (cbAlterar.Checked) or (cbExcluir.Checked)) then cbConsultar.Checked := True; with DMPrincipal.datasetAux do begin Close; if semDireitosTela then CommandText := 'INSERT INTO PERMISSOES_USUARIOS (USU_CODIGO, MEN_CODIGO, PU_NOVO, PU_ALTERAR, PU_APAGAR, PU_CONSULTAR) ' + 'VALUES (' + IntToStr(dbUsuarios.KeyValue) + ', ' + IntToStr(Integer(tvMenus.Selected.Data)) + ', ' + BoolToStr(cbIncluir.Checked, True) + ', ' + BoolToStr(cbAlterar.Checked, True) + ', ' + BoolToStr(cbExcluir.Checked, True) + ', ' + BoolToStr(cbConsultar.Checked, True) + ')' else CommandText := 'UPDATE PERMISSOES_USUARIOS SET ' + 'PU_NOVO = ' + BoolToStr(cbIncluir.Checked, True) + ', ' + 'PU_ALTERAR = ' + BoolToStr(cbAlterar.Checked, True) + ', ' + 'PU_APAGAR = ' + BoolToStr(cbExcluir.Checked, True) + ', ' + 'PU_CONSULTAR = ' + BoolToStr(cbConsultar.Checked, True) + ' WHERE USU_CODIGO = ' + IntToStr(dbUsuarios.KeyValue) + ' AND MEN_CODIGO = ' + IntToStr(Integer(tvMenus.Selected.Data)); ExecSQL(True); if (Assigned(tvMenus.Selected.Parent)) and (cbConsultar.Checked) then verificarPermissaoMenuPai(tvMenus.Selected.Parent); end; end; procedure TFrmPermissoesUsuarios.tvMenusClick(Sender: TObject); begin if Assigned(tvMenus.Selected) then begin HabilitarOpcoes(True); CarregarDireitosUsuarioMenu(dbUsuarios.KeyValue, Integer(tvMenus.Selected.Data)); btnSalvar.Enabled := True; end; end;
Frederico Brigatte***
Posts
24/04/2013
Wilton Júnior
Da uma lida nesse artigo, as vezes te ajuda.
24/04/2013
Joel Rodrigues
cbConsultar.Checked := FieldByName('PU_CONSULTAR').AsString = 'S';
24/04/2013
Frederico Brigatte***
BoolToStr(cbExcluir.Checked, True)
24/04/2013
Frederico Brigatte***
24/04/2013
Wilton Júnior
24/04/2013
Frederico Brigatte***
24/04/2013
Frederico Brigatte***
cbConsultar.Checked := FieldByName('PU_CONSULTAR').AsString = 'S'; cbIncluir.Checked := FieldByName('PU_NOVO').AsString = 'S'; cbAlterar.Checked := FieldByName('PU_ALTERAR').AsString = 'S'; cbExcluir.Checked := FieldByName('PU_APAGAR').AsString = 'S';
E aqui?
semDireitosTela := True; cbConsultar.Checked := False; cbIncluir.Checked := False; cbAlterar.Checked := False; cbExcluir.Checked := False;
24/04/2013
Joel Rodrigues
cbConsultar.Checked := False;
cbIncluir.Checked := False;
cbAlterar.Checked := False;
cbExcluir.Checked := False;
24/04/2013
Frederico Brigatte***
24/04/2013
Joel Rodrigues
Vamos por parte. Vá alterando e vendo quais erros ocorrem.
24/04/2013
Frederico Brigatte***
24/04/2013
Joel Rodrigues
24/04/2013
Frederico Brigatte***
Column unknow FALSE
Da esse erro qdo clica no botão salvar. Código do botão é esse:
procedure TFrmPermissoesUsuarios.btnSalvarClick(Sender: TObject); begin if not (cbConsultar.Checked) and ((cbIncluir.Checked) or (cbAlterar.Checked) or (cbExcluir.Checked)) then cbConsultar.Checked := True; with DMPrincipal.datasetAux do begin Close; if semDireitosTela then CommandText := 'INSERT INTO PERMISSOES_USUARIOS (USU_CODIGO, MEN_CODIGO, PU_NOVO, PU_ALTERAR, PU_APAGAR, PU_CONSULTAR) ' + 'VALUES (' + IntToStr(dbUsuarios.KeyValue) + ', ' + IntToStr(Integer(tvMenus.Selected.Data)) + ', ' + BoolToStr(cbIncluir.Checked, True) + ', ' + BoolToStr(cbAlterar.Checked, True) + ', ' + BoolToStr(cbExcluir.Checked, True) + ', ' + BoolToStr(cbConsultar.Checked, True) + ')' else CommandText := 'UPDATE PERMISSOES_USUARIOS SET ' + 'PU_NOVO = ' + BoolToStr(cbIncluir.Checked, True) + ', ' + 'PU_ALTERAR = ' + BoolToStr(cbAlterar.Checked, True) + ', ' + 'PU_APAGAR = ' + BoolToStr(cbExcluir.Checked, True) + ', ' + 'PU_CONSULTAR = ' + BoolToStr(cbConsultar.Checked, True) + ' WHERE USU_CODIGO = ' + IntToStr(dbUsuarios.KeyValue) + ' AND MEN_CODIGO = ' + IntToStr(Integer(tvMenus.Selected.Data)); ExecSQL(True); if (Assigned(tvMenus.Selected.Parent)) and (cbConsultar.Checked) then verificarPermissaoMenuPai(tvMenus.Selected.Parent); end; end;
24/04/2013
Joel Rodrigues
QuotedStr(BoolToStr(cbIncluir.Checked, True))
Faça isso em todos os campos onde você está usando BoolToStr.
Clique aqui para fazer login e interagir na Comunidade :)