Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2006
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Red face Error en Consulta - solo salen datos la primera vez

Hola

Tengo un problema con una consulta que hago, trabajo con Delphi 6 con Paradox y QuickReport, la consulta sale bien la primera vez pero cuando le doy el preview pero cuando regreso al formulario para cambiar opciones de la consulta me sale el reporte vacio y se q existe información por visualizar.

Lo que he podido determinar es que se trata de las tablas temporales que creo dinamicamente para poder generar el reporte, una de las tres tablas que genero aparece como si no tuviera registros.

Necesito una luz, para poder solucionar el problema, por que ya intente con refresh de las tablas o cerrar y volverarlas abrir y no se soluciona o a lo mejor no es eso.

Gracias de antemano por la atención.

Javier Villa
Responder Con Cita
  #2  
Antiguo 23-01-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Sino pones algo del código que supuestamente te da el error, dificilmente se te va a poder ayudar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 23-01-2006
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Un Poco de codigo - Gracias por la atención

Gracias nuevamente por la ayuda este es el codigo principal:

Bueno Trabajo con DataMulo que seria Dm y 3 tablas temporales que creo dinamicamente, luego la relaciono
Código Delphi [-]
 
----------------------
var Orden,Filtro,Sentencia:String;
    MiRepo:TKardexClasicoReport;
    MiRepoSaldo:TKardexSaldosReport;
    Id:integer;
begin
  Orden     := ' order by Id_Cliente,Id_Producto,Lote,fecha ';
  Filtro    := '';
  Sentencia := 'select * from Kardex ';
  //-- Cliente ---//
  if self.ClienteComboBox.ItemIndex>0 then
    Filtro:=' where id_cliente='+intToStr(Dm.GetId_Cliente(self.ClienteComboBox.Text));
  //-- Producto ---//
  if self.ProductoComboBox.ItemIndex>0 then
    if length(Filtro)=0 then Filtro:=' where id_producto='+IntToStr(Dm.GetId_Producto(self.ProductoComboBox.Text))
    else Filtro:=Filtro+' and id_producto='+IntToStr(Dm.GetId_Producto(self.ProductoComboBox.Text));
  //--- Por Lotes ---//
  if length(self.LoteEdit.Text)>0 then
    if length(Filtro)=0 then Filtro:=' where Lote='+QuotedStr(self.LoteEdit.Text)
    else Filtro:=Filtro+' and Lote='+QuotedStr(self.LoteEdit.Text);
  ///--- Movimientos ----//
  if self.Ingresos.Checked then
    if length(Filtro)=0 then Filtro:=' where TipoMovimiento=true'
    else Filtro:=Filtro+' and TipoMovimiento=true';
  if self.salidas.Checked then
    if length(Filtro)=0 then Filtro:=' where TipoMovimiento=false'
    else Filtro:=Filtro+' and TipoMovimiento=false';
  ///-- Control de Tiempos ---//
  if self.APartir.Checked then
    if length(filtro)=0 then Filtro := ' where fecha>='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaAPartirDateTime.Date))
    else Filtro := Filtro+' and fecha>='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaAPartirDateTime.Date));
  if self.Desde.Checked then
    if length(Filtro)=0 then Filtro := ' where fecha>='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaDesdeDateTime.Date))+' and fecha<='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaHastaDateTime.Date))
    else Filtro := Filtro+' and fecha>='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaDesdeDateTime.Date))+' and fecha<='+QuotedStr(FormatDateTime('mm/dd/yyyy',self.FechaHastaDateTime.Date));
  //--- Detalle de los Movimientos ---//
//  ShowMessage(Sentencia+Filtro+Orden);
  Dm.TrabajoQuery.Close;
  Dm.TrabajoQuery.SQL.Clear;
  Dm.TrabajoQuery.SQL.Add(Sentencia+Filtro+Orden);
  Dm.TrabajoQuery.Active := true;
  if Dm.TrabajoQuery.RecordCount > 0 then begin
    self.CreandoTemporal;
    Dm.TrabajoQuery.First;
    id := 1;
    while not Dm.TrabajoQuery.Eof do begin
      Dm.TempDetTable.Append;
      Dm.TempDetTable.FieldValues['Id_Temp']         := Id;
      Dm.TempDetTable.FieldValues['Id_Kardex']       := Dm.TrabajoQuery.FieldByName('Id_Kardex').AsInteger;
      Dm.TempDetTable.FieldValues['Id_Producto']     := Dm.TrabajoQuery.FieldByName('Id_Producto').AsInteger;
      Dm.TempDetTable.FieldValues['Id_Cliente']      := Dm.TrabajoQuery.FieldByName('Id_Cliente').AsInteger;
      Dm.TempDetTable.FieldValues['Fecha']           := Dm.TrabajoQuery.FieldByName('Fecha').AsDateTime;
      Dm.TempDetTable.FieldValues['TipoMovimiento']  := Dm.TrabajoQuery.FieldByName('TipoMovimiento').AsBoolean;
      Dm.TempDetTable.FieldValues['Lote']            := Dm.TrabajoQuery.FieldByName('Lote').AsString;
      Dm.TempDetTable.FieldValues['Observaciones']   := Dm.TrabajoQuery.FieldByName('Observaciones').AsString;
      Dm.TempDetTable.FieldValues['OrdenCompra']     := Dm.TrabajoQuery.FieldByName('OrdenCompra').AsString;
      Dm.TempDetTable.FieldValues['ProductoLote']    := Dm.TrabajoQuery.FieldByName('Id_Producto').AsString+Dm.TrabajoQuery.FieldByName('Lote').AsString;
      Dm.TempDetTable.FieldValues['PesoNeto']        := Dm.TrabajoQuery.FieldByName('PesoNeto').AsFloat;
      Dm.TempDetTable.FieldValues['Id_Proveedor']    := Dm.TrabajoQuery.FieldByName('Id_Proveedor').AsInteger;
      Dm.TempDetTable.FieldValues['Serie']           := Dm.TrabajoQuery.FieldByName('Serie').AsString;
      Dm.TempDetTable.FieldValues['Numero']          := Dm.TrabajoQuery.FieldByName('Numero').AsString;
      Dm.TempDetTable.FieldValues['Id_Parametro_tc'] := Dm.TrabajoQuery.FieldByName('Id_Parametro_tc').AsInteger;
      Dm.TempDetTable.Post;
      id := id + 1;
      Dm.TrabajoQuery.Next;
    end;
    //--- Cabecera por Producto y Lote ---//
    Sentencia := 'select Distinct id_Cliente,id_Producto,Lote from Kardex ';
    Dm.Trabajo2Query.Close;
    Dm.Trabajo2Query.SQL.Clear;
    Dm.Trabajo2Query.SQL.Add(Sentencia+Filtro);
    Dm.Trabajo2Query.Active := true;
    if Dm.Trabajo2Query.RecordCount > 0 then begin
      Dm.Trabajo2Query.First;
      id := 1;
      while not Dm.Trabajo2Query.Eof do begin
        Dm.TempCabTable.Append;
        Dm.TempCabTable.FieldValues['Id_Temp']      := Id;
        Dm.TempCabTable.FieldValues['Id_Producto']  := Dm.Trabajo2Query.FieldByName('Id_Producto').AsInteger;
        Dm.TempCabTable.FieldValues['Lote']         := Dm.Trabajo2Query.FieldByName('Lote').AsString;
        Dm.TempCabTable.FieldValues['ProductoLote'] := Dm.Trabajo2Query.FieldByName('Id_Producto').AsString+Dm.Trabajo2Query.FieldByName('Lote').AsString;
        Dm.TempCabTable.FieldValues['Id_Cliente']   := Dm.Trabajo2Query.FieldByName('Id_Cliente').AsInteger;
        Dm.TempCabTable.Post;
        id := id + 1;
        Dm.Trabajo2Query.Next;
      end;
    end;
    //--- Cabecera por Producto ---//
    Sentencia := 'select Distinct id_Cliente,id_Producto from Kardex ';
    Dm.Trabajo2Query.Close;
    Dm.Trabajo2Query.SQL.Clear;
    Dm.Trabajo2Query.SQL.Add(Sentencia+Filtro);
    Dm.Trabajo2Query.Active := true;
    if Dm.Trabajo2Query.RecordCount > 0 then begin
      Dm.Trabajo2Query.First;
      id := 1;
      while not Dm.Trabajo2Query.Eof do begin
        Dm.TemporalTable.Append;
        Dm.TemporalTable.FieldValues['Id_Temp']      := Id;
        Dm.TemporalTable.FieldValues['Id_Producto']  := Dm.Trabajo2Query.FieldByName('Id_Producto').AsInteger;
        Dm.TemporalTable.FieldValues['Id_Cliente']   := Dm.Trabajo2Query.FieldByName('Id_Cliente').AsInteger;
        Dm.TemporalTable.Post;
        id := id + 1;
        Dm.Trabajo2Query.Next;
      end;
    end;
    Sentencia := 'select Distinct id_Cliente from Kardex ';
    Dm.Trabajo2Query.Close;
    Dm.Trabajo2Query.SQL.Clear;
    Dm.Trabajo2Query.SQL.Add(Sentencia+Filtro);
    Dm.Trabajo2Query.Active := true;
    self.LlenarSaldoTemporal;
    //--- Estableciendo Relacion Maestro Detalle de con Productos y Lotes y Movimiento --///
    Dm.TempDetTable.Active        := false;
    DM.TempDetTable.IndexName     := 'ProductoLote';
    Dm.TempDetTable.MasterSource  := Dm.CabeceraDataSource;
    Dm.TempDetTable.MasterFields  := 'ProductoLote';
    Dm.CabeceraDataSource.DataSet := Dm.TempCabTable;
    Dm.TempDetTable.Active        := true;
    //--- Estableciendo Relacion Maestro Detalle con las Productos y lotes  --///
    Dm.TempCabTable.Active        := false;
    DM.TempCabTable.IndexName     := 'Id_Producto';
    Dm.TempCabTable.MasterSource  := Dm.TemporalDataSource;
    Dm.TempCabTable.MasterFields  := 'Id_Producto';
    Dm.TemporalDataSource.DataSet := Dm.TemporalTable;
    Dm.TempCabTable.Active        := true;
    //--- Estableciendo Relacion Maestro Detalle con las Productos y lotes  --///
    Dm.TemporalTable.Active        := false;
    Dm.TemporalTable.IndexName     := 'Id_Cliente';
    Dm.TemporalTable.MasterSource  := Dm.TrabajoDataSource;
    Dm.TemporalTable.MasterFields   := 'Id_Cliente';
    Dm.TrabajoDataSource.DataSet   := Dm.Trabajo2Query;
    Dm.TemporalTable.Active        := true;
    //--- Creando y presentando el Reporte ---//
    if self.Excel.Checked then
      begin
        self.GenerarExcelClasico;
      end
    else begin
           if self.Clasico.Checked then begin
             MiRepo := TKardexClasicoReport.Create(self);
             MiRepo.PreviewModal;
             MiRepo.Free;
           end;
           if self.Saldos.Checked then begin
             MiRepoSaldo := TKardexSaldosReport.Create(self);
             MiRepoSaldo.PreviewModal;
             MiRepoSaldo.Free;
           end;
         end;
    Dm.TempDetTable.Close;
    Dm.TempDetTable.DeleteTable;
    Dm.TempCabTable.Close;
    Dm.TempCabTable.DeleteTable;
    Dm.TemporalTable.Close;
    Dm.TemporalTable.DeleteTable;
    Dm.TrabajoQuery.Close;
    Dm.TrabajoQuery.SQL.Clear;
    Dm.Trabajo2Query.Close;
    Dm.Trabajo2Query.SQL.Clear;
 
---- Procedimiento de creacion de Temporales ---
procedure TKardexHiloConsultaForm.CreandoTemporal;
var lencontro:boolean;
    MiTabla:String;
    Numero:integer;
begin
  //---- Creando una tabla temporal para el detalle de LOS ROLLOS  ----///
  Dm.TempDetTable.Close;
  Dm.TempDetTable.TableType := ttParadox;
  Numero    := 1;
  MiTabla   := '_TEMP_';
  lencontro := false;
  while lencontro=false do begin
    Dm.TempDetTable.TableName := MiTabla+Trim(IntToStr(Numero));
    if Dm.TempDetTable.Exists then Numero := Numero + 1
    else lencontro := true;
  end;
  with Dm.TempDetTable.FieldDefs do
  begin
    Clear;
    Add('Id_Temp',         ftInteger,  0, True);
    Add('Id_Kardex',       ftInteger,  0, True);
    Add('ProductoLote',    ftString,  30, True);
    Add('Id_Producto',     ftInteger,  0, FALSE);
    Add('Id_Cliente',      ftInteger,  0, FALSE);
    Add('Fecha',           ftDate,     0, FALSE);
    Add('TipoMovimiento',  ftBoolean,  0, FALSE);
    Add('Lote',            ftString,  80, FALSE);
    Add('Observaciones',   ftString, 150, FALSE);
    Add('OrdenCompra',     ftString,  30, FALSE);
    Add('PesoNeto',        ftFloat,    0, FALSE);
    Add('Saldo',           ftFloat,    0, FALSE);
    Add('Id_Proveedor',    ftInteger,  0, FALSE);
    Add('Id_Parametro_tc', ftInteger,  0, FALSE);
    Add('Serie',           ftString,   5, FALSE);
    Add('Numero',          ftString,  10, FALSE);
  end;
  Dm.TempDetTable.Exclusive := true;
  Dm.TempDetTable.IndexDefs.Clear;
  with Dm.TempDetTable.IndexDefs.AddIndexDef do begin
    Name := '';
    Fields := 'Id_Temp';
    Options := [ixPrimary];
  end;
  with Dm.TempDetTable.IndexDefs.AddIndexDef do begin
    Name := 'ProductoLote';
    Fields := 'ProductoLote';
  end;
  Dm.TempDetTable.CreateTable;
  Dm.TempDetTable.Active := true;
  Dm.TempDetTable.FieldDefs.Update;
  //---- Creando una tabla temporal para LAS ORDENES DE PRODUCCION  ----///
  Dm.TempCabTable.Close;
  Dm.TempCabTable.TableType := ttParadox;
  Numero    := 1;
  MiTabla   := '_TEMP_';
  lencontro := false;
  while lencontro=false do begin
    Dm.TempCabTable.TableName := MiTabla+Trim(IntToStr(Numero));
    if Dm.TempCabTable.Exists then Numero := Numero + 1
    else lencontro := true;
  end;
  with Dm.TempCabTable.FieldDefs do
  begin
    Clear;
    Add('Id_Temp',        ftInteger,  0, True);
    Add('ProductoLote',   ftString,  30, true);
    Add('Id_Cliente',     ftInteger,  0, FALSE);
    Add('Id_Producto',    ftInteger,  0, FALSE);
    Add('Lote',           ftString,  80, FALSE);
    Add('Saldo',          ftFloat,    0, FALSE);
  end;
  Dm.TempCabTable.Exclusive := true;
  Dm.TempCabTable.IndexDefs.Clear;
  with Dm.TempCabTable.IndexDefs.AddIndexDef do begin
    Name := '';
    Fields := 'Id_Temp';
    Options := [ixPrimary];
  end;
  with Dm.TempCabTable.IndexDefs.AddIndexDef do begin
    Name   := 'Id_Producto';
    Fields := 'Id_Producto';
  end;
  Dm.TempCabTable.CreateTable;
  Dm.TempCabTable.Active := true;
  Dm.TempCabTable.FieldDefs.Update;
  Dm.TempCabTable.IndexDefs.Update;
  //---- Creando una tabla temporal para la CABECERA ----///
  Dm.TemporalTable.Close;
  Dm.TemporalTable.TableType := ttParadox;
  Numero    := 1;
  MiTabla   := '_TEMP_';
  lencontro := false;
  while lencontro=false do begin
    Dm.TemporalTable.TableName := MiTabla+Trim(IntToStr(Numero));
    if Dm.TemporalTable.Exists then Numero := Numero + 1
    else lencontro := true;
  end;
  with Dm.TemporalTable.FieldDefs do
  begin
    Clear;
    Add('Id_Temp',        ftInteger,  0, True);
    Add('Id_Cliente',     ftInteger,  0, True);
    Add('Id_Producto',    ftInteger,  0, FALSE);
  end;
  Dm.TemporalTable.Exclusive := true;
  Dm.TemporalTable.IndexDefs.Clear;
  with Dm.TemporalTable.IndexDefs.AddIndexDef do begin
    Name := '';
    Fields := 'Id_Temp';
    Options := [ixPrimary];
  end;
  with Dm.TemporalTable.IndexDefs.AddIndexDef do begin
    Name   := 'Id_Cliente';
    Fields := 'Id_Cliente';
  end;
  Dm.TemporalTable.CreateTable;
  Dm.TemporalTable.Active := true;
  Dm.TemporalTable.FieldDefs.Update;
  Dm.TemporalTable.IndexDefs.Update;
end;
Responder Con Cita
  #4  
Antiguo 23-01-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿Un poco?
Si pones así tu código, dudo que alguien te ayude...

Sería mejor que pusieras solo la parte donde haces la consulta. Es decir, la sentencia SQL que utilizas y como la utilizas, creo que con eso sería suficiente.

Sin ofender, pero yo nisiquiera me moleste en leerlo.
__________________


Última edición por ContraVeneno fecha: 24-01-2006 a las 00:46:53.
Responder Con Cita
  #5  
Antiguo 24-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por ContraVeneno
Si pones así tu código, dudo que alguien te ayude...
Dificilmente. No me atrevo a leerlo, no
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 24-01-2006
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 99
Poder: 20
javicho_villa Va por buen camino
Sorry por la cantidad

Basicamente asi lleno una tabla
-------------------------------------------------------
Dm.TrabajoQuery.Close;
Dm.TrabajoQuery.SQL.Clear;
Dm.TrabajoQuery.SQL.Add(Sentencia+Filtro+Orden);
Dm.TrabajoQuery.Active := true;
if Dm.TrabajoQuery.RecordCount > 0 then begin
self.CreandoTemporal;
Dm.TrabajoQuery.First;
id := 1;
while not Dm.TrabajoQuery.Eof do begin
Dm.TempDetTable.Append;
Dm.TempDetTable.FieldValues['Id_Temp'] := Id;
Dm.TempDetTable.FieldValues['Id_Kardex'] := Dm.TrabajoQuery.FieldByName('Id_Kardex').AsInteger;
Dm.TempDetTable.FieldValues['Id_Producto'] := Dm.TrabajoQuery.FieldByName('Id_Producto').AsInteger;
Dm.TempDetTable.FieldValues['Id_Cliente'] := Dm.TrabajoQuery.FieldByName('Id_Cliente').AsInteger;
Dm.TempDetTable.FieldValues['Fecha'] := Dm.TrabajoQuery.FieldByName('Fecha').AsDateTime;
Dm.TempDetTable.FieldValues['TipoMovimiento'] := Dm.TrabajoQuery.FieldByName('TipoMovimiento').AsBoolean;
Dm.TempDetTable.FieldValues['Lote'] := Dm.TrabajoQuery.FieldByName('Lote').AsString;
Dm.TempDetTable.FieldValues['Observaciones'] := Dm.TrabajoQuery.FieldByName('Observaciones').AsString;
Dm.TempDetTable.FieldValues['OrdenCompra'] := Dm.TrabajoQuery.FieldByName('OrdenCompra').AsString;
Dm.TempDetTable.FieldValues['ProductoLote'] := Dm.TrabajoQuery.FieldByName('Id_Producto').AsString+Dm.TrabajoQuery.FieldByName('Lote').AsString;
Dm.TempDetTable.FieldValues['PesoNeto'] := Dm.TrabajoQuery.FieldByName('PesoNeto').AsFloat;
Dm.TempDetTable.FieldValues['Id_Proveedor'] := Dm.TrabajoQuery.FieldByName('Id_Proveedor').AsInteger;
Dm.TempDetTable.FieldValues['Serie'] := Dm.TrabajoQuery.FieldByName('Serie').AsString;
Dm.TempDetTable.FieldValues['Numero'] := Dm.TrabajoQuery.FieldByName('Numero').AsString;
Dm.TempDetTable.FieldValues['Id_Parametro_tc'] := Dm.TrabajoQuery.FieldByName('Id_Parametro_tc').AsInteger;
Dm.TempDetTable.Post;
id := id + 1;
Dm.TrabajoQuery.Next;
end;
---- Y Asi la creo --------------
Dm.TempCabTable.Close;
Dm.TempCabTable.TableType := ttParadox;
Numero := 1;
MiTabla := '_TEMP_';
lencontro := false;
while lencontro=false do begin
Dm.TempCabTable.TableName := MiTabla+Trim(IntToStr(Numero));
if Dm.TempCabTable.Exists then Numero := Numero + 1
else lencontro := true;
end;
with Dm.TempCabTable.FieldDefs do
begin
Clear;
Add('Id_Temp', ftInteger, 0, True);
Add('ProductoLote', ftString, 30, true);
Add('Id_Cliente', ftInteger, 0, FALSE);
Add('Id_Producto', ftInteger, 0, FALSE);
Add('Lote', ftString, 80, FALSE);
Add('Saldo', ftFloat, 0, FALSE);
end;
Dm.TempCabTable.Exclusive := true;
Dm.TempCabTable.IndexDefs.Clear;
with Dm.TempCabTable.IndexDefs.AddIndexDef do begin
Name := '';
Fields := 'Id_Temp';
Options := [ixPrimary];
end;
with Dm.TempCabTable.IndexDefs.AddIndexDef do begin
Name := 'Id_Producto';
Fields := 'Id_Producto';
end;
----------------------------------------
El problema es cuando quiero consultarlo por segunda vez, no me sale nada y tengo que salir del sistema para poder visualizarlo

Gracias y mil disculpas por el monton de codigo, estoy tan sumergido en el programa que se me paso.

Javier Villa
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Encabezado solo en la primera pag Carlos Arevalo Impresión 2 01-12-2004 00:17:10
Borland Database engine, solo permite la lectura de bases de datos foxpro!!!?? trp Conexión con bases de datos 1 01-04-2004 06:59:29
Base de datos de solo lectura xerkan Firebird e Interbase 5 23-03-2004 19:04:57
como hacer una consulta a dos bases de datos distintas yavy SQL 2 16-12-2003 20:51:30
un tEdit que sólo tome datos de tipo integer? Giniromero Conexión con bases de datos 9 25-09-2003 17:04:54


La franja horaria es GMT +2. Ahora son las 12:17:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi