Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   desde excel (https://www.clubdelphi.com/foros/showthread.php?t=37308)

Max_E. 09-11-2006 02:09:42

desde excel
 
hola a todos :o:

aun intento realizar el paso de datos desde un archivo excel a la base de datos de mi aplicacion y esto es lo que intente hacer

Código SQL [-]
for i:=2 to Ndatos do
begin
nom:=excel.Cells[i,2];
prec:=excel.Cells[i,3];
cant:=excel.Cells[i,4];
porc:=excel.Cells[i,5];
min:=excel.Cells[i,6];

query1.sql.text := Format('update medicinas set precio = %s, cantidad = %s, porcentaje = %s, minimo = %s where nombre = %s',[prec,cant,porc,min, QuotedStr(nom)]);
query1.Execsql;
end;

para lo que me sale un mensaje 'invalid use of keyword. token: , line number:1' y resalta la linea del ultimo end en los codigos

podrian hecharle un ojo y ver cual es el problema, les agradeceria mucho que me lo explicaran........

oscarnoe 09-11-2006 15:06:06

Hola Max_E,

puede que me equivoque, pero trata de ver la sentencia SQL que se forma al ejecutar format. A lo mejor el error es por el signo decimal de los float.

Espero que te sea de ayuda...

Oscar Noe

Toñico 09-11-2006 18:24:11

Hola Max_E,

Creo que el problema está en el nombre de la variable min. Es una palabra reservada y es posible que te de error por eso.

Un saludo.

oscarnoe 09-11-2006 18:46:59

Cita:

Empezado por Toñico
Hola Max_E,

Creo que el problema está en el nombre de la variable min. Es una palabra reservada y es posible que te de error por eso.

Un saludo.

Yo tambien lo pense en un principio, pero Min es una funcion de la libreria Math, y tiene toda la pinta que el error venga de la sentencia SQL.

Max_E. 10-11-2006 03:33:27

no es el decimal
 
Código Delphi [-]
escrito originalmente por toñico
Hola Max_E, 

puede que me equivoque, pero trata de ver la sentencia SQL que se forma al ejecutar format. A lo mejor el error es por el signo decimal de los float.

no utilizo float para mis datosasi que no es problema de punto decimal, me parece que el problema va por la coma que separa las campos en la cadena, ya que cuando intente poner ';' en ves de ',' me ssalio el mismo error pero esta ves indicando 'token: ;'

quiza sepas o alguien sepa de un codigo mas sencillo para pasar los datos desde excel a la base de datos....:o

roman 10-11-2006 04:31:05

Ya oscarnoe te comentó al principio que te fijaras en cómo queda la consulta luego de que la asignas con Format. El error podría estar en los datos en sí y sólo lo verás viendo la cadena final.

Por ejemplo, suponte que una celda de cantidad (u otro campo) está vacía. La sentencia SQL quedaría del estilo de:

Código SQL [-]
update medicinas set precio = 400, cantidad = , porcentaje = 15, minimo = 100 where nombre = "flagyl"

¿Te das cuenta?

// Saludos

oscarnoe 10-11-2006 11:41:02

Tienes razon. Yo pondria un bloque try except en el execsql.
Código Delphi [-]
try
  execsql;
except
  on E: exception ShowMessage(E.message+#13#10+Query1.SQL.Text);
end;

De esta forma, Max_E puedes podras concretar el porque falla.

Espero que te sea de ayuda.

Oscar Noe

Max_E. 11-11-2006 03:55:19

ahora si
 
hola de nuevo

gracias roman, oscarnoe y toñico :D:D

entendi mejor con la explicacion mas detallada de roman y si era ese el problema y lo solucione con la buenisima recomendacion de oscarnoe sobre el try exception, ahora si funcionan correctamente los codigos.

esto sirvio para actualizar o variar los datos ya existentes y como le ago para que me avise cuando uno de los nombre del archivo excel no se encuentre en mi base de datos y al mismo tienpo que lo inserte, me avian recomendado utilizar insert pero no se como usarlo:o y ademas primero tengo que saber como reconocer un nombre nuevo


gracias por tenerme mucha pero mucha paciencia :o:o:o


La franja horaria es GMT +2. Ahora son las 12:11:26.

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