PDA

Ver la Versión Completa : Ayuda con Servicio Windows y BD


n03l
13-06-2012, 21:42:44
Salu2
Tengo un pequeño ejemplo que vi en internet para crear un servicio en windows, el ejemplo funciona bien pero yo le e agregado unas lineas para insertar datos en una Base de Datos y no lo hace

Aqui el Codigo para ver si me echan una mano

Código Delphi [-] (http://www.clubdelphi.com/foros/#)unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection; type TAjpdSoftAsignacionTareas = class(TService) temporizador: TTimer; ZConnection1: TZConnection; ADOTActiva: TZQuery; ADOTActivaCEDULA: TStringField; ADOTActivaNOMBRE: TStringField; ADOTActivaPRUE: TStringField; ADOTActivaPPP: TStringField; procedure ServiceExecute(Sender: TService); procedure temporizadorTimer(Sender: TObject); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end; var AjpdSoftAsignacionTareas: TAjpdSoftAsignacionTareas; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin AjpdSoftAsignacionTareas.Controller(CtrlCode); end; function TAjpdSoftAsignacionTareas.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TAjpdSoftAsignacionTareas.ServiceExecute(Sender: TService); begin temporizador.Enabled := True; while not Terminated do ServiceThread.ProcessRequests(True); temporizador.Enabled := False; ZConnection1.Connected :=true; //le agrege esto ADOTActiva.Active:=true; //le agrege esto end; procedure TAjpdSoftAsignacionTareas.temporizadorTimer(Sender: TObject); var fichero : TStringList; const rutaFichero = 'C:\prueba_servicio.txt'; begin fichero := TStringList.Create; if FileExists(rutaFichero) then fichero.LoadFromFile(rutaFichero); fichero.Add(DateTimeToStr(Now) + ' Ejecutado servicio'); fichero.SaveToFile(rutaFichero); //le agrege esto ADOTActiva.Append; ADOTActiva.FieldByName('Cedula').AsString:=DateToStr(Date)+' '+TimeToStr(Time); ADOTActiva.FieldByName('NOMBRE').AsString:='Se Ejecuto Tarea'; ADOTActiva.Post; end; end.


Salu2 y Gracias de antemano

n03l
13-06-2012, 21:46:05
No Entiendo xq me sale el codigo desordenado y use las etiquetas delphi!!!