![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
problema con dbgrid.
Ok. Marcos el problema se origina de la siguiente manera:
Cuando marco con asterico cualquier campo de la tabla ventas, me da ese error. Cuando no coloco ningun campo clave en la tabla no me lo da. Como hago para exigir una referencia integral en el database desktop, si la tabla ventas no le puedo colocar un campo clave. Por ejemplo en la tabla inventario tengo el campo Ser_pro que es el serial del producto marcado como clave primaria. en la tabla ventas tengo el campo ser_ven que es el serial del producto a vender y este no lo puedo marcar como clave primaria porque me da el key violation. Gracias... |
|
#2
|
||||
|
||||
|
Por lo que deduzco tienes la tabla y además datos y ahora pretentendes establecer ciertas reglas, claves....
El asunto es que esto debe de hacerse con las tablas vacias para evitar que exista alguna incoerencia en los datos y nos impidan poner las reglas, que precisamente son para evitar éstas. Sino estoy deduciendo mal, lo que tienes que hacer antes de intentar poner una clave única es una consulta de valores repetidos para eliminarlos ya que sino te va a ser imposible establecer la clave. Por otra parte cuando ningún campo pueda ser cadidato a clave primaria, se crea uno a dichos efectos, que aunque no es lo más aconsejable puede ser un autoincrementado. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#3
|
|||
|
|||
|
problema con dbgrid
Ok. marcos si me puedes explicar como haria para establecer una consulta de valores repetidos, para despues de establecer la clave.
Gracias y disculpa. |
|
#4
|
||||
|
||||
|
Saludos
Con sentencias SQL
__________________
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! |
|
#5
|
|||
|
|||
|
ayuda con dblookupcombobox
Buenos dias.
Estoy trabajando con un dblookupcombobox, y no se despliega la lista de los registros. He relacionado el Datasourse y el datafield con una tabla pero no se funciona. Si me puedes explicar porque tengo entendido que el dblookupcombobox despliega una lista de valores de una tabla para modificar otra. Gracias. |
|
#6
|
||||
|
||||
|
Tienes que configurar la lista desplegable (de donde quieres que se muestren los valores)
Imagina 2 Tablas Cliente y Albaran, en el albaran se guarda el codigo del cliente, y ahora quieres que se muestre el codigo y el nombre del cliente en el albaran: DataSource: Albaran DataField: AlbaranIdCliente ListSource: Clientes ListField: codigo;NombreCliente ListIndex: 1 KeyField: codigo si dicho DBlookup está en la ventana de albaranes, mostrará en la lista desplegable el codigo y nombre del cliente. Cuando eliges con el ratón un cliente, en el Editor del combo se muestra el NombreCliente, (lo indica el ListIndex, pon ese a 0 y verás los cambios). Además se guarda en la tabla Albaran, en el campo AlbaranIdCliente, el código del cliente elegido. Espero se entienda. |
|
#7
|
|||
|
|||
|
probema con dblookupcombobox.
Gracias lepe por tu ayuda. me funciono.
Si alguien del foro me me puede ayudar ya que tengo un problema. EL DBLOOKUPCOMBOBOX QUE ESTOY UTILIZANDO ESTA RELACIONADO EN EL LISTSOURCE CON LA TABLA CLIENTES UN CAMPO LLAMADO RIF_CLI. EN EL DATASOURCE TENGO RALACIONADO LA TABLA VENTAS UN CAMPO LLAMADO RIF_COM. EN EL FORMULARIO TENGO UNOS DBEDITS TODOS RELACIONADOS CON LA TABLA CLIENTES. TAMBIEN EN EL FORMULARIO TENGO UN DBGRID RELACIONADO A LA TABLA VENTAS. EL PROBLEMA RADICA ES QUE CUANDO GUARDO LOS REGISTROS DE LA TABLA VENTA Y LA TABLA CLIENTES QUEDA DE LA SIGUIENTE FORMA: RIF_CLI NOM_CLI DES_COM PUN_COM PTO_COM PEDRO P. BUJIAS 35.000,00 70.000,00 12.745.722 PORQUE NO ME GUARDA EL CAMPO RIF_CLI EN EL REGISTRO INICIAL, SINO QUE LA GUARDA EN EL REGITRO SIGUIENTE. COMO HAGO PARA QUE LA GUARDE EN LA POSICION INICIAL. EL CODIGO QUE UTILIZO ES EL SIGUIENTE: procedure TForm8.RoundButton2Click(Sender: TObject); begin table1.edit; TABLE1.first; while table1.eof = false do table1.Delete; label3.caption:= '0'; label5.Caption:= '0'; dbgrid1.Fields[0].FocusControl; end; procedure TForm8.RoundButton1Click(Sender: TObject); begin table1.first; while table1.Eof=false do begin form2.Table1.FindKey([table1.fieldbyname('serial').asinteger]); form2.Table1.edit; form2.Table1.fieldbyname('exi_PRO').asfloat := form2.Table1.fieldbyname('exi_pro').asfloat + dbgrid1.Fields[3].asfloat; form2.Table1.FieldByName('iva_PRO').ascurrency:= form2.Table1.fieldbyname('prv_pro').AsCurrency * (14/100); form2.Table1.fieldbyname('prV_PRO').AsCurrency:= dbgrid1.Fields[4].ascurrency * (40/100) + dbgrid1.Fields[4].ascurrency; form2.Table1.Post; /// REGISTRO EN LA TABLA DE COMPRAS TABLE2.INSERT; table2.fieldbyname('fec_COM').asdatetime := date; table2.fieldbyname('ser_COM').asinteger := dbgrid1.Fields[0].AsInteger; table2.fieldbyname('Nro_fac').Asstring := dbgrid1.Fields[1].Asstring; table2.fieldbyname('Des_com').asstring := dbgrid1.Fields[2].Asstring; table2.fieldbyname('Can_com').asfloat := dbgrid1.Fields[3].Asfloat; table2.fieldbyname('Cun_com').ascurrency := dbgrid1.Fields[4].Ascurrency; table2.fieldbyname('IVA_com').ascurrency := dbgrid1.Fields[5].Ascurrency; table2.fieldbyname('Cot_com').ascurrency := dbgrid1.Fields[6].Ascurrency; table2.fieldbyname('RIF_com').asstring := dbedit1.Field.AsString; table2.fieldbyname('nom_com').asstring := dbedit2.Field.AsString; table2.fieldbyname('nit_com').asinteger := dbedit3.Field.Asinteger; table2.fieldbyname('dir_com').asstring := dbedit4.field.AsString; table2.fieldbyname('tel_com').asstring := dbedit5.Field.AsString; table2.post; table1.Next; end; END; GRACIAS. Última edición por aurbano fecha: 06-10-2005 a las 18:33:59. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|