Olá pessoal sou novato em Delphi Fiz um curso recentemente e estou tentando desenvolver uma aplicação de cartão de Ponto com Delphi 2007 e BD MS Sql Server. Por enquanto estava indo tudo bem mas esses dias me deparei com um problema que não estou conseguindo resolver já pesquisei em diversoso foruns e não achei a solução vamos lá.
Minha aplicação se conecta com o BD através de um AdoConection e faço consultas ao mesmo com o AdoDataSet.
no Formulário de Cadastro de clientes possui uma busca por nome ou matricula (edit + Radiogroup) a busca por matricula tá funcionando ok! Mas por nome retorna a seguinte mensagem (CDSmpreg: Parameter 'NOME_EMPREG' not found.)
Pergunta
Bruno Dorbação
Olá pessoal sou novato em Delphi Fiz um curso recentemente e estou tentando desenvolver uma aplicação de cartão de Ponto com Delphi 2007 e BD MS Sql Server. Por enquanto estava indo tudo bem mas esses dias me deparei com um problema que não estou conseguindo resolver já pesquisei em diversoso foruns e não achei a solução vamos lá.
Minha aplicação se conecta com o BD através de um AdoConection e faço consultas ao mesmo com o AdoDataSet.
no Formulário de Cadastro de clientes possui uma busca por nome ou matricula (edit + Radiogroup) a busca por matricula tá funcionando ok! Mas por nome retorna a seguinte mensagem (CDSmpreg: Parameter 'NOME_EMPREG' not found.)
Segue o código do Data Module e do Form.
-------------------------------------------------------------------->DATAMODULE
unit UdmPonto;
interface
uses
SysUtils, Classes, DB, Provider, DBClient, ADODB;
type
TDataModule1 = class(TDataModule)
ADOponto: TADOConnection;
DTSempreg: TADODataSet;
DSmpreg: TDataSource;
CDSmpreg: TClientDataSet;
DSPempreg: TDataSetProvider;
AdoGeraChavePrimaria: TADODataSet;
DspGeraChavePrimaria: TDataSetProvider;
CDSGeraChavePrimaria: TClientDataSet;
CDSmpregCOD_MATR: TIntegerField;
CDSmpregMATR: TIntegerField;
CDSmpregNOME_EMPREG: TStringField;
CDSmpregSECAO: TStringField;
DTSjustif: TADODataSet;
DSjustif: TDataSource;
CDSjustif: TClientDataSet;
DSPjustif: TDataSetProvider;
CDSjustifCOD_JUSTIF: TIntegerField;
CDSjustifcod_MATR: TIntegerField;
CDSjustifDT_INICIO: TDateTimeField;
CDSjustifHORA_INICIO: TStringField;
CDSjustifDT_FIM: TDateTimeField;
CDSjustifHORA_FIM: TStringField;
CDSjustifCOD_TIPOJUSTIF: TIntegerField;
DTSmarcacao: TADODataSet;
DSmarcacao: TDataSource;
CDSmarcacao: TClientDataSet;
DSPmarcacao: TDataSetProvider;
CDSmarcacaoCOD_MARCACAO: TIntegerField;
CDSmarcacaoMATR: TIntegerField;
CDSmarcacaoDATAPTO: TDateTimeField;
CDSmarcacaoHENTRA1: TStringField;
CDSmarcacaoHSAIDA1: TStringField;
CDSmarcacaoHENTRA2: TStringField;
CDSmarcacaoHSAIDA2: TStringField;
CDSmarcacaoHENTRA3: TStringField;
CDSmarcacaoHSAIDA3: TStringField;
CDSmarcacaoCOD_FOLHA: TIntegerField;
CDSGeraChavePrimariaTABELA: TStringField;
CDSGeraChavePrimariaCODIGO: TIntegerField;
QryDia: TADODataSet;
DspDia: TDataSetProvider;
CdsDia: TClientDataSet;
DtsDia: TDataSource;
CdsDiaDATA: TDateTimeField;
CdsDiaDIA_SEMANA: TStringField;
CdsDiaCOD_EXTRA: TIntegerField;
ADOQuery1: TADOQuery;
ADOQuery1COD_MATR: TIntegerField;
ADOQuery1MATR: TIntegerField;
ADOQuery1NOME_EMPREG: TStringField;
ADOQuery1SECAO: TStringField;
private
{ Private declarations }
public
function GerarChavePrimaria(Tabela: string): integer;
function PesquisarJustificacao(Cod_Matr: integer): boolean;
function PesquisarMatriculaDoEmpregado (Matr: integer): boolean;
function PesquisarNomeDoEmpregado (Nome_empreg: string): boolean;
function PesquisarDataDoDia(Data: TDateTime): boolean;
function PesquisarMatriculaMarcacao (Matr: integer): boolean;
var
ErroDoClientDataSet: string;
end;
var
DataModule1: TDataModule1;
implementation
{$R *.dfm}
function TDataModule1.GerarChavePrimaria(Tabela: string): integer;
begin
try
repeat
CdsGeraChavePrimaria.Close;
CdsGeraChavePrimaria.Params[0].AsString := UpperCase(Tabela);
CdsGeraChavePrimaria.Open;
if CdsGeraChavePrimaria.IsEmpty then
begin
CdsGeraChavePrimaria.Append;
CdsGeraChavePrimariaTABELA.AsString := Tabela;
CdsGeraChavePrimariaCODIGO.AsFloat := 1;
end else begin
CdsGeraChavePrimaria.Edit;
CdsGeraChavePrimariaCODIGO.AsFloat := CdsGeraChavePrimariaCODIGO.AsFloat + 1;
end;
CdsGeraChavePrimaria.Post;
until CdsGeraChavePrimaria.ApplyUpdates(0) = 0;
finally
Result := CdsGeraChavePrimariaCODIGO.Value;
CdsGeraChavePrimaria.Close;
end;
end;
function TDataModule1.PesquisarDataDoDia(Data: TDateTime): boolean;
begin
with CDSdia do
begin
Close;
Params[0].AsDateTime := StrToDateTime(DateToStr(Data)+' 00:00:00');
Params[1].AsDateTime := StrToDateTime(DateToStr(Data)+' 23:59:59');
Open;
Result := not IsEmpty;
end;
end;
function TDataModule1.PesquisarJustificacao(Cod_Matr: integer): boolean;
begin
with CDSjustif do
begin
close;
Params[0].AsInteger := cod_Matr;
Open;
Result := not IsEmpty;
end;
end;
function TDataModule1.PesquisarMatriculaDoEmpregado (Matr: integer): boolean;
begin
with CDSmpreg do
begin
close;
Params[0].AsInteger := Matr;
Open;
Result := not IsEmpty;
end;
end;
//function TDataModule1.PesquisarNomeDoEmpregado (Nome_empreg: string): boolean;
function tdatamodule1.PesquisarNomeDoEmpregado(Nome_empreg: string):boolean;
begin
with CDSmpreg do
begin
close;
Params.ParamByName('NOME_EMPREG').AsString := '%'+Nome_empreg+'%';
Open;
Result := not IsEmpty;
end;
end;
function TDataModule1.PesquisarMatriculaMarcacao (Matr: integer): boolean;
begin
with CDSmarcacao do
begin
close;
Params[0].AsInteger := Matr;
Open;
Result := not IsEmpty;
end;
end;
end.
-------------------------------------------------------------------->FORMULARIO
unit uPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, jpeg;
type
TFrmPrincipal = class(TForm)
MainMenu1: TMainMenu;
Cadastros1: TMenuItem;
Funcionarios1: TMenuItem;
Marcacao: TMenuItem;
Justificativas1: TMenuItem;
Image1: TImage;
Dia1: TMenuItem;
procedure LerArqTxtJustif(Sender: TObject);
procedure Justificativas1Click(Sender: TObject);
procedure Funcionarios1Click(sender: TObject);
procedure Dia1Click(Sender: TObject);
procedure MarcacaoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmPrincipal: TFrmPrincipal;
implementation
uses form_justif_pto, form_cad_func, form_ponto, form_cad_dia, UdmPonto;
{$R *.dfm}
procedure TFrmPrincipal.Justificativas1Click(Sender: TObject);
begin
Application.CreateForm(TFrmJustif, FrmJustif);
try
FrmJustif.ShowModal;
finally
FrmJustif.Release;
end;
end;
procedure TFrmPrincipal.LerArqTxtJustif(Sender: TObject);
var Arq: TextFile;
Linha: String;
begin
AssignFile(arq, 'C:\Documents and Settings\Administrador\Desktop\PROJETO PONTO\justabr.txt');
Reset(Arq);
repeat
DataModule1.CDSjustif.open;
DataModule1.CDSjustif.insert;
ReadLn(Arq, Linha);
// datamodule1.CDSjustifCOD_JUSTIF.AsString := copy('');
datamodule1.CDSjustifcod_MATR.AsString := Copy(Linha, 1, 8);
datamodule1.CDSJustifDt_inicio.AsString := Copy(Linha, 9, 10);
datamodule1.CDSJustifHora_inicio.AsString := Copy(Linha, 19, 3);
datamodule1.CDSJustifDt_fim.AsString := Copy(Linha, 22, 10);
datamodule1.CDSjustifHORA_FIM.AsString := Copy(Linha, 32, 4);
datamodule1.CDSJustifCod_TipoJustif.AsString := Copy(Linha, 36, 2);
datamodule1.CDSJustif.close;
until Eof(Arq);
CloseFile(Arq);
end;
procedure TFrmPrincipal.MarcacaoClick(Sender: TObject);
begin
Application.CreateForm(TForm3, Form3);
try
Form3.ShowModal;
finally
Form3.Release;
end;
end;
procedure TFrmPrincipal.Dia1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
try
Form2.ShowModal;
finally
Form2.Release;
end;
end;
procedure TFrmPrincipal.Funcionarios1Click(Sender: Tobject);
begin
Application.CreateForm(TForm_empreg_PTO, Form_empreg_PTO);
try
Form_empreg_PTO.ShowModal;
finally
Form_empreg_PTO.Release;
end;
end;
end.
AGUARDO SE PUDEREM ME AJUDAR
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.