![]() |
Validar Primary Key Compuesta ??
Tengo
Una tabla de almacenes CREATE TABLE ALMACENES ( ID_ALMACEN INTEGER NOT NULL, ETC…. ); Una tabla de productos CREATE TABLE MED_MATCUR ( ID_PRODUCTO INTEGER NOT NULL, ETC…. ); Una tabla de Productos x almacen CREATE TABLE CATXALM ( ID_ALMACEN INTEGER NOT NULL, ID_PRODUCTO INTEGER NOT NULL, STOCK_MIN INTEGER NOT NULL, STOCK_MAX INTEGER NOT NULL, EXISTENCIA INTEGER, REV_CADUCIDAD DATE ); Donde la llave Prinipal esta formada por ID_ALMACEN,ID_PRODUCTO ALTER TABLE CATXALM ADD CONSTRAINT PK_CATXALM PRIMARY KEY (ID_ALMACEN, ID_PRODUCTO); Entonces yo antes de crear un Nuevo registro en la tabla de Productos por almacen quiero verificar si éste ya existe. Por ejemplo quiero dar de alta el producto 5 del almacen 3. hago lo siguiente con delphi Var v_llave: string; begin // concateno los id correspondientes convertidos en strings v_llave:=inttostr(DM01.SD_AlmacenesID_ALMACEN.Value)+inttostr(DM01.SD_Med_MatCurID_PRODUCTO.Value); ShowMessage(v_llave); // utilizo el FindKey para verificar, pero esto no me esta funcionando,seguro estoy mal // ¿???? Como se debe hacer if not DM01.SD_CatXAlm.FindKey([v_llave]) then begin DM01.SD_CatxAlm.Insert; DM01.SD_CatXAlmID_PRODUCTO.Value := DM01.SD_Med_MatCurID_PRODUCTO.Value; DM01.SD_CatXAlmSTOCK_MIN.Value := 0; DM01.SD_CatXAlmSTOCK_MAX.Value := 0; end; end; pudieran ayudarme??? |
Código:
Query.SQL.Add('select * from CATXALM'); |
Buena costumbre también sería que pusieses esta operación entre transacciones.
|
Me parece un buena opcion, aunque me gustaria mas porder utilizar la funcion .FindKey con el parametro correspondiente, sera q no se puede con una llave compuesta???
gracias |
Cita:
Código:
Tabla.FindKey([buscar1, buscar2, bucar3,......,buscarN]); Código:
Tabla.Locate('campo1, Campo2,..., campoN', VarArrayOg([campo1, campo2,...,campoN]), []); |
Me gusta mas esa forma
muchas gracias, la voy a probar en este momento |
La franja horaria es GMT +2. Ahora son las 10:10:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi