Ver Mensaje Individual
  #1  
Antiguo 21-03-2011
juliobuitrago juliobuitrago is offline
Miembro
 
Registrado: jun 2006
Posts: 37
Reputación: 0
juliobuitrago Va por buen camino
Extrañisimo problema con Llave

Hola.
Me sucede un lio sumamente extraño.
Necesito hacer unas replicaciones a diferentes bases de datos.
Se me ocurrio usar el IBScript, donde meto todas las modificaciones que luego voy a ejecutar en cada database 8son 5 y pueden ser mas).
Esta es la tabla:
CREATE TABLE PRODUCTOS (
ID_PRODUCTO DOMAIN_ID_PRODUCTO NOT NULL,
ID_SUPLIDOR DOMAIN_ID_INT,
COD_PRODUCTO DOMAIN_COD_PRODUCTO NOT NULL,
NOM_PRODUCTO_EN DOMAIN_DESC_128,
NOM_PRODUCTO_ES DOMAIN_DESC_128,
NOM_PRODUCTO_ALIAS DOMAIN_DESC_64,
ID_UM DOMAIN_ID_CHR4_NIL,
ID_PRODUCTO_TIPO DOMAIN_ID_CHR4_NIL,
ES_INVENTARIABLE DOMAIN_BOOLEAN_T NOT NULL,
EXISTENCIA_PREFERIDA DOMAIN_VALUES,
PRECIO_LISTA DOMAIN_VALORES_DINERO,
ES_PLUS DOMAIN_BOOLEAN_F,
MONTO_PLUS DOMAIN_VALORES_DINERO,
COD_PRODUCTO1 DOMAIN_COD_PRODUCTO_NIL,
COD_PRODUCTO2 DOMAIN_COD_PRODUCTO_NIL,
COD_PRODUCTO3 DOMAIN_COD_PRODUCTO_NIL,
COD_PRODUCTO4 DOMAIN_COD_PRODUCTO_NIL,
COD_PRODUCTO5 DOMAIN_COD_PRODUCTO_NIL
);

Esta es la llave primeria
ALTER TABLE PRODUCTOS ADD CONSTRAINT PK_PRODUCTOS PRIMARY KEY (ID_PRODUCTO);

Entonces, desde IBExpert, instrucciones como esta se ejecutan perfectamente:
update PRODUCTOS
SET NOM_PRODUCTO_ALIAS = 'BLA, BLA, '
WHERE ID_PRODUCTO = '0001'


Sin embargo, cuando ejecuto el TBScript me da problemas de indice.
SI ven bien el codigo, veran que puse un query a mano para detectar si era malo el string o era la ejecucion, y me dio ocmo resultado la ejecución
En este codigo ScriptProductos. es de tipo IBScript, que antes lo habia probado y funcionaba excelente....

ScriptProductos.Script.Add('Update PRODUCTOS SET NOM_PRODUCTO_EN = ' + QuotedStr('BLA, BLA, BLA') + ' WHERE ID_PRODUCTOS = ' + QuotedStr('P340001'));
//for i := 0 to v_ElementosElementos Do Begin
//ScriptProductos.Script.Add(v_Elementos[i]);
//ShowMessage(v_Elementos[i]);
//End;

//DatosDatabase.a_Transaction_Procs_Start.Execute;
//ScriptProductos.
ScriptProductos.ExecuteScript;
//DatosDatabase.a_Transaction_Procs_Commit.Execute;

En la imagen les muestro el error, pero basicamente dice que hay un problema con el indice...
y a mi me parece que la que ejecuto por el IBExpert y esta son parecidas...

Por favor, ayudenme y gracias anticipadas.
Fdo Buitrago
Imágenes Adjuntas
Tipo de Archivo: jpg error.JPG (17,8 KB, 15 visitas)
Tipo de Archivo: jpg error2.JPG (38,8 KB, 17 visitas)
Responder Con Cita