Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2020
davidsolo davidsolo is offline
Registrado
 
Registrado: abr 2020
Posts: 5
Poder: 0
davidsolo Va por buen camino
Error al crear una tabla con parametros.

buenos días a todos¡¡
estoy realizando una prueba con delphi 10.2 componentes zeos y mysql.
en un archivo txt tengo guardado una estructura de un tabla y en tiempo de ejecución vuelco el contenido del txt a una ZQuery y ejecuto dicha Zquery.... ahí no problemas se crea la tabla en la base de datos.

el problema surge cuando quiero cambiar el nombre de esa tabla dependiendo del día que se encuentra.. asi que en el txt ahora
coloco el nombre de la tabla de esta manera " :nombreTabla "
y en código delphi coloco esto:


DM.miSQL.Params[0].Value := edit1.Text;
DM.miSQL.ExecSQL;



y me envía un error de sintaxis de mysql


también carge en tiempo de diseño la estructura de la tabla en el zquery.sql.txt y cuando ejecuto la zquery me envia el error que no encuentra el parametro..


espero comentarios
Responder Con Cita
  #2  
Antiguo 28-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues sin ver el script es bien difícil adivinarlo.
De todas formas, para renombrar una tabla tendrá que hacer algo parecido a:
alter table nombre rename to nuevonombre
Responder Con Cita
  #3  
Antiguo 28-10-2020
davidsolo davidsolo is offline
Registrado
 
Registrado: abr 2020
Posts: 5
Poder: 0
davidsolo Va por buen camino
gracias por responder..
tengo esto en el txt:
Código SQL [-]
create table if not exists :Parametro
(
    id_local                varchar(1)      not null,                
    id_prod                integer           not null,        
    id_mcodbarra        varchar(20)     not null,
    .
    .
    .

    primary key (id_prod,id_mcodbarra)
)
engine=innodb;


y en delphi


Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
var F: TextFile;
    sLinea: String;
begin
  AssignFile( F, ExtractFilePath( Application.ExeName ) + 'tabla.txt' );
  Reset( F );
  
  DM.miSQL.Close;
  DM.miSQL.SQL.Clear;
  while not Eof( F ) do
  begin
    ReadLn( F, sLinea );
    DM.miSQL.SQL.Add( sLinea );
  end;
  DM.miSQL.Params[0].Value := edit1.Text;
  DM.miSQL.ExecSQL;
  CloseFile( F );
end;


la intención es crear una nueva tabla no renombrar una tabla existente. parece que no me explique bien.. en eso de cambiar el nombre de la tabla..
Responder Con Cita
  #4  
Antiguo 28-10-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No uses parámetros de la query. Aunque son recomentable no sirven para usarlos en todas partes.
Es decir, puedes hacer elto:
Código SQL [-]
SELECT * FROM TABLA1 WHERE CAMPO1=:valor

pero no puedes hacer esto:

Código SQL [-]
:valor * FROM TABLA1 WHERE CAMPO1=33

En este caso sustituye el valor de :Parametro con un AnsiReplaceText.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 28-10-2020
davidsolo davidsolo is offline
Registrado
 
Registrado: abr 2020
Posts: 5
Poder: 0
davidsolo Va por buen camino
y como seria eso?
Responder Con Cita
  #6  
Antiguo 28-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creando la consulta, sin parámetros.
Código:
cSql := "update "+ cNombreTabla +" set campo1= ......."
QR.selectsq.text := cSql;
...
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
Error al crear Tabla Quim Herrera Firebird e Interbase 2 06-09-2011 11:05:41
Error al crear tabla dBase con ADO gtstromboli Conexión con bases de datos 0 14-07-2010 16:07:23
error al crear una tabla ebeltete Firebird e Interbase 7 05-06-2007 19:49:49
Da Error al crear un indice una tabla DBF Antuan Conexión con bases de datos 9 04-10-2005 22:11:07
error al crear tabla albarchi MySQL 2 10-02-2005 20:26:01


La franja horaria es GMT +2. Ahora son las 02:42:54.


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