Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Problemas con el componente TTable (con BDE)

Primeramente buenas tardes, tengo todo el dia peliando con esa porqueria de componente del tatable del bde y no encuentro el por que no funciona (tampoco entiendo pro que me obligan a programar con eso existiendo ado:S) esta aplicacion se conecta a microsoft access(por si faltaba algo obsoleto)pero al grano no entiendo por que no me respeta el estado de insert este es el codigo que uso para insertar un registro yo no l oprograme solo trato de acomodarlo
Código Delphi [-]
procedure TForm1.AddItemClick(Sender: TObject);
begin

     if trim(iQUANTITY.Text)=''then
      begin
            MessageBox(Handle,'The Field Amount is empty','Error',mb_ok+mb_iconerror);
            iQUANTITY.setfocus;
            exit;
      end;
     if trim(DBLookupitemcode.Text)=''then
      begin
            MessageBox(Handle,'The Field Item is empty','Error',mb_ok+mb_iconerror);
            DBLookupitemcode.setfocus;
            exit;
      end;

data.tquotedetail.close;
data.TQuotedetail.Active:=false;
data.TQuotedetail.Filtered:=false;
data.tquotedetail.Open;
data.tquotedetail.Insert; 
 
DATA.tquotedetail.fieldbyname('nQuantity').VALUE:=trim(iquantity.TEXT);
DATA.tquotedetail.FIELDBYNAME('sITEMID').value:=trim(DBlookupitemcode.TEXT);
DATA.tquotedetail.FIELDBYNAME('sDETAILS').value:=trim(DBDESCRIPCION.Caption + DBMARCA.caption);
DATA.tquotedetail.FIELDBYNAME('nCOST').value:=(DBPRECIOP.caption);
DATA.tquotedetail.fieldbyname('sLOCATION').VALUE:=trim(SLOCATION.TEXT);
DATA.tquotedetail.FIELDBYNAME('nfloor').VALUE:=trim(SFLOOR.text);
 try
  if DATA.tquotedetail.state in [dsedit, dsinsert] then //valida si esta editando o insertando en la tabla
  begin
     DATA.tquotedetail.POST;
  end;

    laborbtn.Enabled:=true;
    data.tQuotedetail.Close;
    data.tQuotedetail.Filtered:=true;
    data.tQuotedetail.Filter:=' nQuoteID='+trim(dbedit1.text);
    data.tQuotedetail.Open;
 except
 on EDBEngineError do begin
    Messagebox(Handle,'Duplicate Guest Export','Key Violation', 0);
    data.Tquotedetail.cancel;
    data.Tquotedetail.edit;
 end;
 end;
end;

esto esta dentro de un boton para insertar el registro

y este otro codigo es para hacer una busqueda

Código Delphi [-]
procedure TForm2.DBGrid1DblClick(Sender: TObject);
var 
   filtro:string; 
begin
punta:=   data.qrymasterpick.fieldbyname('nQuoteid').value;
form1.DBEdit1.Text:=punta;
data.Qry_detail.Close;
data.Qry_detail.prepare;
data.Qry_detail.parambyname('code').value:= data.qrymasterpick.fieldbyname('nQuoteid').value;
data.Qry_detail.open;
form2.Close;
data.tQuotedetail.close;
data.tQuotedetail.open;
filtro:=' nQuoteID='+punta;
data.tQuotedetail.Filter:=filtro;

Form1.sClientID.Visible:=false;
Form1.DBDESCRIPCION.Visible:=false;
Form1.DBMARCA.Visible:=false;
Form1.DBPRECIOP.Visible:=false;
Form1.DBTYPE.Visible:=false;
Form1.DESCRIPCION.Visible:=true;
Form1.MARCA.Visible:=true;
Form1.PRECIOP.Visible:=true;
Form1.LTYPE.Visible:=true;
Form1.SUPPLIER.Visible:=true;
data.Qry_Master.Close;
data.Qry_Master.prepare;
data.Qry_Master.parambyname('code').value:= data.tQuotedetail.fieldbyname('sitemid').value;
data.Qry_Master.open;
if not (data.Qry_Master.IsEmpty) then
begin
 Form1.DESCRIPCION.Caption:=data.Qry_Master.Fieldbyname('descripcion').Value;
 Form1.MARCA.Caption:=data.Qry_Master.Fieldbyname('MArca').Value;
 Form1.PRECIOP.Caption:=data.Qry_Master.Fieldbyname('PRECIO PUBLICO').Value;
 Form1.LTYPE.Caption:=data.Qry_Master.Fieldbyname('Type').Value;
 Form1.SUPPLIER.Caption:=data.Qry_Master.Fieldbyname('supplier').Value;
 Form1.edt_item.text:=data.Qry_Master.Fieldbyname('DESCRIPCION').Value;
end;
 //Form1.DBLookupclientid
Form1.Edt_Comment.Text:=data.qrymasterpick.fieldbyname('scomments').value;
Form1.Edt_client.Text:=data.qrymasterpick.fieldbyname('sCompany').value;
data.qrymasterpick.Close;
Form1.iQUANTITY.enabled:=true;
Form1.DBLookupitemcode.enabled:=true;
Form1.SLOCATION.enabled:=true;
Form1.sFLOOR.enabled:=true;
Form1.iQUANTITY.Color:=clwindow;
Form1.DBLookupitemcode.Color:=clwindow;
Form1.SLOCATION.Color:=clwindow;
Form1.sFLOOR.Color:=clwindow;
Form1.DBLookupclientid.enabled:=false;
Form1.Edt_Comment.enabled:=false;
Form1.DBLookupclientid.Color:=clbtnface;
Form1.Edt_Comment.Color:=clbtnface;
Form1.AddItem.enabled:=true;
Form1.laborbtn.enabled:=true;
Form1.Button1.enabled:=false;
Form1.Button3.enabled:=true;

if not (data.Qry_detail.isempty) then
begin
  Form1.iQUANTITY.Text:=data.Qry_detail.Fieldbyname('nquantity').Value;
  //Form1.DBLookupitemcode.ListFieldIndex:=Qry_detail.Fieldbyname('').Value;
  Form1.SLOCATION.Text:=data.Qry_detail.Fieldbyname('slocation').Value;
  Form1.sFLOOR.Text:=data.Qry_detail.Fieldbyname('nfloor').Value;
end;
Form1.DBLookupclientid.Visible:=false;
Form1.DBLookupitemcode.Visible:=false;
Form1.edt_Client.Visible:=true;
Form1.edt_Client.enabled:=false;
Form1.edt_Client.color:=clbtnface;
Form1.Edt_item.Visible:=true;
end;

extrañamente cuando hago puras busquedas funciona bien o cuando creo un nuevo registro y estoy insertando al detalle tambien, pero cuando hago una busqueda y quiero insertarle algo ya no lo hace, o despues de crear un registro e insertarle a lhacer una busque da no hace nada.

muchas gracias uqine me pueda decir que le pasa a estos componentes obsoletos
Responder Con Cita
  #2  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Momento, primero que todo deja la agresividad, corres el riesgo de no ser tomado en serio.

Ahora has portado bastante información pero te faltaron algunos detalles, como es la relacion master detail de los TTable, y lo mas importante cual es el error que te da cuando no funciona.

Recuerda algo que siempre lo he dicho, el hecho que sea obsoleto no quiere decir que no funcione correctamente, quizas esta mal configurado, pues eso trata de postear mas calmadamente
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 03-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Muchas gracias eduarcol perdon si al postear escribi muy agresivamente pero ya me estaba volviendo loco, ahora ya vengo mas relajado la relacion de las tablas es Quotemaster el campo nquoteid es su clave primaria y es un campo autonumber y la tabla QUOTEdetail su clave primaria es nQuoteid campo number, sitemid campo text , slocation campo text, donde el nQuoteid lo jala del maestro y l omas extraño de todo es que no da ningun error se ejecuta perfectamente con las modificaciones que le hice el problema es que no graba en el access.
Responder Con Cita
  #4  
Antiguo 03-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Hola eduarcol ya analizando serenamente el problema ya di que es el causante de este pero no se como solucionarlo hai te va la conclusion a ver si me puedes dar una orientadita al deshabilitar esta parte de codigo que me hacia el filtro segun la llave primaria de Quote master ya funciona hace la inserccion como puedo volver a poner el ttable tquotedetail a su modo original osea que no filtre para que haga la inserccion y una ves ya hecha ahora si poner el filtro gracias

Código Delphi [-]
  data.tQuotedetail.Close;
  data.tQuotedetail.Filtered:=true;
  data.tQuotedetail.Filter:=' nQuoteID='+trim(dbedit1.text);     
  data.tQuotedetail.Open;
Responder Con Cita
  #5  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
colocale la propiedad Filtered a FALSE, y problema solucionado.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 03-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Gracias eduarcol si exactamente eso es lo que se tiene que hacer al insertar quitarle el filtrado despues de todo jeje creo que los componentes adoconnections surgieron de ahi jeje por que siguen la misma logica
Responder Con Cita
  #7  
Antiguo 03-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
de todas formas si estan filtrando para buscar los detalles, te recomiendo utilices la relacion masterdetail que trabaja directamente sobre los indices.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 03-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
donde encuentro esa relacion o ocmo la implemento me imagino que es algo parecido a ligar un adoconnection con otro en la propiedad datasource?
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
componente para buscar datos en una TTable o TQuery component gmontes OOP 4 30-10-2006 22:31:16
Guardar cambios con componente TTable desve Tablas planas 1 26-04-2006 01:05:19
bug en componente Ttable ? MasterXP Conexión con bases de datos 3 21-03-2005 17:09:31
Problemas con TTable.BatchMove eduarcol Conexión con bases de datos 6 15-05-2004 23:12:58
problemas con el componente TTable Carlosguiland Conexión con bases de datos 2 22-04-2004 21:21:16


La franja horaria es GMT +2. Ahora son las 19:26:44.


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