{ =============================================================================== Copyright (©) 2001. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: 01-10-2001 Versión actual: 1.0.2 Fecha versión actual: 12-05-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 07-04-2002 Cambio de todos los procedimientos en los que se utiliza una transaccion nueva, por una unica transacción. 12-05-2002 Adaptación al grid 'TdxDBGrid'. =============================================================================== } unit TablaProvincias; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DBTables, DB, IBCustomDataSet, IBSQL, BaseDatos, IBDatabase, dxDBGrid, dbgrids; type TdmTablaProvincias = class(TDataModule) private procedure IniciarSQL; public TablaProvincias : TIBDataSet; sqlGrid : TStrings; function darCodigoProvincia(Descripcion : String) : Variant; function darNombreProvincia (Codigo : Variant) : string; constructor Create (AOwner : TComponent); override; destructor Destroy; override; procedure InicializarGridProvincias(var Grid: TdxDBGrid); end; var dmTablaProvincias : TdmTablaProvincias; implementation {$R *.DFM} uses IBStoredProc, Mensajes, IB, Excepciones, dxDBCtrl; constructor TdmTablaProvincias.Create (AOwner : TComponent); begin inherited; sqlGrid := TStringList.Create; IniciarSQL; end; destructor TdmTablaProvincias.Destroy; begin sqlGrid.Free; inherited; end; procedure TdmTablaProvincias.IniciarSQL; begin with sqlGrid do begin Add('select DESCRIPCION, CODIGO'); Add('from PROVINCIAS'); Add('order by DESCRIPCION'); end; end; function TdmTablaProvincias.darCodigoProvincia(Descripcion: String): Variant; var oSQL : TIBSQL; Codigo : String; begin oSQL := TIBSQL.Create(Self); Codigo := ''; with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select CODIGO from PROVINCIAS '); SQL.Add('where DESCRIPCION = :DESCRIPCION'); try ParamByName('DESCRIPCION').AsString := AnsiUpperCase(Descripcion); Prepare; ExecQuery; Codigo := Fields[0].AsString; if (Codigo = '') then Result := NULL else Result := Codigo; finally Close; Transaction := NIL; Free; end; end; end; procedure TdmTablaProvincias.InicializarGridProvincias(var Grid: TdxDBGrid); var Columna : TdxDBTreeListColumn; begin with Grid do begin DestroyColumns; {Columna DESCRIPCION} Columna := CreateColumn(TdxDBTreeListColumn); Columna.FieldName := 'DESCRIPCION'; Columna.Caption := 'Nombre de la provincia'; end; end; function TdmTablaProvincias.darNombreProvincia(Codigo: Variant): string; var oSQL : TIBSQL; Descripcion : String; begin Descripcion := ''; oSQL := TIBSQL.Create(Self); with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select DESCRIPCION'); SQL.Add('from PROVINCIAS'); SQL.Add('where CODIGO = :CODIGO'); try ParamByName('CODIGO').AsString := Codigo; Prepare; ExecQuery; Descripcion := Fields[0].AsString; Result := Descripcion; except Close; Transaction := NIL; Free; end; end; end; end.