Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola amigos/as, tengo un problema a la hora de comparar en variables las fechas de modificación de ficheros. Por la razón que sea, dos fechas iguales me indica que son distintas. Os pongo un el ejemplo, y me aseguro de que ambas fechas sean las mismas.
Update_excell:
Load Date, filetime() as X from
LET v_actual_UpdateXLS =round(Peek('X',0,'Update_excell'));
Ahora esa misma fecha la guardo en QVD:
STORE X from Update_excell into
DROP Table Update_excell ;
Y nuevamente, vuelvo a sacar la fecha y la guardo en otra variable:
old_Update_excell:
LOAD X FROM
(qvd);
LET v_old_UpdateXLS =round(Peek('X',0,'old_Update_excell'));
DROP Table old_Update_excell;
Al compararlos en el Script, siempre me dice que las fechas son distintas
IF '$v_old_UpdateXLS' = '$v_actual_UpdateXLS' then
//DROP Table TABLE_2;
set v_resultado ='iguales';
ELSE
//DROP Table TABLE_1;
set v_resultado ='diferentes';
ENDIF
¿Alguna idea de que puede estar ocurriendo?
Gracias por adelantado amigos/as.
Hola Francisco,
Estás escribiendo mal las variables en el script, estás comparando los nombres de las variables y no los contenidos de las variables.
Con fechas es mejor ponerlas entrecomillas, ya que pueden contener espacios y caracteres especiales que harán que te falle tu script si no las entrecomillas:
Update_excell:
LOAD Date , filetime() as X FROM
(ooxml, embedded labels, table is Sheet1); LET v_actual_UpdateXLS =Peek('X',0,'Update_excell');
STORE X from Update_excell into
; DROP Table Update_excell ;
old_Update_excell:
LOAD X FROM
(qvd); LET v_old_UpdateXLS =Peek('X',0,'old_Update_excell');
DROP Table old_Update_excell;
IF '$(v_old_UpdateXLS)' = '$(v_actual_UpdateXLS)' then //TE FALTAN AQUÍ LOS PARÉNTESIS PARA QUE QV SEPA QUE TIENE QUE DEVOLVER EL VALOR DE UNA VARIABLE
//DROP Table TABLE_2;
set v_resultado ='iguales';
ELSE
//DROP Table TABLE_1;
set v_resultado ='diferentes';
ENDIF
Un Saludo!!!
Hola,
es que se puede adjuntar un ejemplo?
Gracias
André Gomes
Hola André, disculpa olvidé adjuntarlo. Aquí lo tienes.
Gracias nuevamente.
Could you please brief me in English...
Hola Francisco,
Esto se debe a un error de sintaxis a la hora de evaluar variables.
Para evaluar una variable con el símbolo $ debes usar la siguiente sintaxis: '$(MiVariable)'.
Por eso esta linea siempre retorna false, estas comparando dos cadenas de texto:
IF '$v_old_UpdateXLS' = '$v_actual_UpdateXLS' then
Para este caso yo usaría los nombres de variables tal como están, como a continuación:
IF v_old_UpdateXLS = v_actual_UpdateXLS then
//DROP Table TABLE_2;
set v_resultado ='iguales';
ELSE
//DROP Table TABLE_1;
set v_resultado ='diferentes';
ENDIF
Espero solucione tu problema.
Saludos,
Hola Francisco,
Estás escribiendo mal las variables en el script, estás comparando los nombres de las variables y no los contenidos de las variables.
Con fechas es mejor ponerlas entrecomillas, ya que pueden contener espacios y caracteres especiales que harán que te falle tu script si no las entrecomillas:
Update_excell:
LOAD Date , filetime() as X FROM
(ooxml, embedded labels, table is Sheet1); LET v_actual_UpdateXLS =Peek('X',0,'Update_excell');
STORE X from Update_excell into
; DROP Table Update_excell ;
old_Update_excell:
LOAD X FROM
(qvd); LET v_old_UpdateXLS =Peek('X',0,'old_Update_excell');
DROP Table old_Update_excell;
IF '$(v_old_UpdateXLS)' = '$(v_actual_UpdateXLS)' then //TE FALTAN AQUÍ LOS PARÉNTESIS PARA QUE QV SEPA QUE TIENE QUE DEVOLVER EL VALOR DE UNA VARIABLE
//DROP Table TABLE_2;
set v_resultado ='iguales';
ELSE
//DROP Table TABLE_1;
set v_resultado ='diferentes';
ENDIF
Un Saludo!!!
vaya fallo, mil gracias Manuel
Gracias Santiago
No te preocupes, pasa muchas veces, y siempre buscamos lo más complejo antes que lo más sencillo.
Un saludo!!
hi clark, is solved. All is about a syntax mistake
My Script:
IF '$v_old_UpdateXLS' = '$v_actual_UpdateXLS' then
Correct Script:
IF '$(v_old_UpdateXLS)' = '$(v_actual_UpdateXLS)' then
i forgot '()'
Thanks clark