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)
-   -   Ayuda con insercion de datos en mysql usando dbExpress (https://www.clubdelphi.com/foros/showthread.php?t=70288)

pedrocrespo35 12-10-2010 18:35:07

Ayuda con insercion de datos en mysql usando dbExpress
 
Hola estoy usando el DbExprees con mysql 5.1 en mi form el problema radica en que cuando le doy clic a mi boton para insertar me indica un error en los campos de Fecha y Numero. Mi base de datos esta asi.

Tabla datos
id - autoincremental
Nombre - String
Fecha - Date
Numero - Integer

Ahora en mi boton tengo la siguiente expresion:

Código Delphi [-]
Insert into Datos(id,nombre,fecha,numero) Values (null,'+#39+Edit1.Text+#39+',edit2.text,edit3.text)');

Pero al momento de agregar el dato me marca un error de sintaxys en la expresion. Alguien me puede ayudar me urge. Apenas llevo una semana con Delphi.

Al González 12-10-2010 23:51:33

Bienvenido al mundo Delphi, Pedro, y a este club también. :)

Cita:

Empezado por pedrocrespo35 (Mensaje 379054)
Insert into Datos(id,nombre,fecha,numero) Values (null,'+#39+Edit1.Text+#39+',edit2.text,edit3.text)');

El problema debe ser que esa no es ni una sentencia Delphi válida ni una sentencia SQL válida (hiciste una mezcla de esos dos lenguajes, que [aún] no es posible en Delphi).

Para ir aclarando el asunto:

¿Qué código escribiste exactamente en el botón?

¿Cuál es el mensaje de error exacto que te aparece en pantalla?

¿Qué componentes añadiste al formulario / módulo de datos para hacer esta operación y qué valores (propiedades) les estableciste?

Danos por favor un poco más de información de lo que quieres obtener y qué estás haciendo (aquí caben mucho más que 140 caracteres). En la medida de ello, las respuestas que necesitas irán emergiendo. ;)

Gracias.

Al González. :)

Casimiro Notevi 13-10-2010 00:14:15

Holam pedrocrespo35, tal y como te comenta Al González, necesitamos más datos, te recomiendo que leas nuestra guía de estilo para poder ayudarte mejor, muchas gracias por tu colaboración y bienvenido a clubdelphi.

Por cierto, el parámetro primero está mal, debes escribir algo así como:

Código Delphi [-]
insert into Datos(id,nombre,fecha,numero) Values (null,QuotedStr(Edit1.Text),edit2.text,edit3.text));

Y el primer parámetro al ser nulo, si es una clave primaria tampoco debe funcionarte, ni la comilla del final... o sea, que mejor haz caso de Al González y explícanos con más detalle.

pedrocrespo35 13-10-2010 17:08:59

Gracaias aAl González y Casimiro Notevi, la sentencia que puse la vi en un video de ayuda del delphi, solo que en dicho video se usan 2 campos, el id y el nombre. en el form se encuentra 1 edit y un boton, al boton se le añade la sentencia y al pulsarlo genera el registro. Lo he echo y a funcionado, pero cuando quiero ingresar valores ya sean de fecha o numero siempre me indica un error. Igual la seccion que viene de +#39+Edit1.text+#39+ supuestamente es porque el edit no se puede colocar asi nada mas. Como menciono funciona perfectamente bien pero al querer ingresar fechas y numeros envia el error. Ojala me puedan ayudar. Gracias

Casimiro Notevi 13-10-2010 17:49:46

Amigo pedrocrespo35, ¿has leído la guía de estilo?, ahí se explica, entre otras cosas, que debes darnos más información, simplemente.
¿Cómo te vamos a ayudar si sólo nos dices que no funciona?, debes darnos los más datos posibles, base de datos, tablas, campos, tipos de los campos, poner el código de tu programa, etc.
Ya sabes: a mejores preguntas... mejores respuestas ;)

pedrocrespo35 13-10-2010 21:32:10

Al inicio del hilo puse que base de datos uso, las tablas etc. Pero lo vuelvo a hacer:

Version Delphi: RAR 2010
TIPO DB: Mysql 5.1
Nombre DB:Prueba
Nombre Tabla: Datos
Campos
id - integer - Autoincremental
Nombre - varchar
Fecha - Date
Numero - Integer

Formulario:
La base de datos se conecta atravez del dbexpress, tengo un SQLConecction, SQLDataset1, DataSetProvider, ClientDataset, DataSource y un SQLQuery.

El SQLDatase lo conecto al SQLConecction, El DataSetProvider al SQLDataset, El ClientDataSet al DatasetProvider y el DataSource al ClientDataset.

Ademas tengo 3 Edit: Edit1.text, Edit2.text, Edit3.text, un boton y un DBGrid.

Ahora en el evento Clic del Boton Realizo lo siguiente:

ClientDataset1.Close;
SQLDataset1.Close;

SQLQuery1.SQL.clear;
SQLQuery.SQL.Add('Insert Into datos(id,nombre, fecha, numero) Values(null,'+#39+Edit1.text++#39+',Edit2.Text, Edit3.text)');

Donde: Edit1 Almacena el nombre, Edit2 La fecha y el Edit 3 el Numero. Ahora he probado solo ingresando el nombre usando lo siguiente:

QLQuery.SQL.Add('Insert Into datos(id,nombre, fecha, numero) Values(null,'+#39+Edit1.text++#39+')'); y funciona perfectamente pero a la hora de realizarlo para que ingrese el Edit2 y el Edit3 me marca un error. Ojala y estaves me logren enteder y una disculpa si es poca la informacion.

Casimiro Notevi 13-10-2010 22:01:11

Cita:

Empezado por pedrocrespo35 (Mensaje 379199)
QLQuery.SQL.Add('Insert Into datos(id,nombre, fecha, numero) Values(null,'+#39+Edit1.text++#39+')'); y funciona perfectamente pero a la hora de realizarlo para que ingrese el Edit2 y el Edit3 me marca un error.

¿Y funcione perfectamente?, supongo que quieres decir que compila sin errores.

Ya te comenté que esa línea está mal, fíjate:

Código Delphi [-]
QLQuery.SQL.Add('Insert Into datos(id,nombre, fecha, numero) Values(null,'+#39+Edit1.text++#39+')');

Estás insertando:
id = null
fecha = +#39+Edit1.text++#39+
numero =

Resumiendo,
- si el campo id es clave primaria no puedes insertar un nulo. Salvo que tengas un generador automático.
- una fecha correcta no es, evidentemente, esto: +#39+Edit1.text++#39+
- numero debe tener un valor porque lo has indicado en los campos, a no ser que tenga un valor por defecto.
- también hay problemas de sintaxis con las comillas ('), no es correcto.

Te aconsejo que extraigas esa sentencia y te fijes con cualquier ejemplo que encontrarás en clubdelphi la forma de hacerlo.
Y ve preguntando según te vayan saliendo mensajes de error.

pedrocrespo35 13-10-2010 23:38:13

Casimiro no te vi gracias, pero si gustas te puedo mandar el video de donde saque la informacion para que verifiques y seria una manera mas facil de que me entiendas y me puedas ayudar.

Casimiro Notevi 14-10-2010 01:31:05

No creo que sea necesario el video, lo que te recomiendo es que lo verifiques y te asegures que estás haciéndolo igual que ese video (suponiendo que esté bien el video) y que sigas los pasos de cualquier sql que hace 'insert', así verás la sintaxis y te quedará claro.


La franja horaria es GMT +2. Ahora son las 08:12:10.

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