Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
desde excel

hola a todos :

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........
Responder Con Cita
  #2  
Antiguo 09-11-2006
oscarnoe oscarnoe is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
oscarnoe Va por buen camino
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
__________________
No dejes camino viejo por sendero nuevo
Responder Con Cita
  #3  
Antiguo 09-11-2006
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 50
Poder: 20
Toñico Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 09-11-2006
oscarnoe oscarnoe is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
oscarnoe Va por buen camino
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.
__________________
No dejes camino viejo por sendero nuevo
Responder Con Cita
  #5  
Antiguo 10-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
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....
Responder Con Cita
  #6  
Antiguo 10-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #7  
Antiguo 10-11-2006
oscarnoe oscarnoe is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
oscarnoe Va por buen camino
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
__________________
No dejes camino viejo por sendero nuevo
Responder Con Cita
  #8  
Antiguo 11-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
ahora si

hola de nuevo

gracias roman, oscarnoe y toñico

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 y ademas primero tengo que saber como reconocer un nombre nuevo


gracias por tenerme mucha pero mucha paciencia
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
desde excel a DB Max_E. Conexión con bases de datos 1 08-11-2006 05:33:14
Cargar desde excel RaulChemical Servers 2 07-06-2006 16:24:50
Impresión desde Excel GeminiS Impresión 0 29-04-2005 17:26:07
Desde Excel jsanchez Varios 3 13-01-2004 19:35:32
Exportar desde BDE a Excel tamara Servers 1 03-10-2003 23:05:02


La franja horaria es GMT +2. Ahora son las 19:06:20.


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
Copyright 1996-2007 Club Delphi