Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   problema al modificar 1 base de datos paradox7 (https://www.clubdelphi.com/foros/showthread.php?t=34685)

adaypr 17-08-2006 20:17:59

problema al modificar 1 base de datos paradox7
 
Hola,
La verdad es que no tengo mucha idea sobre base de datos, pero necesito hacer 1.
He intentado hace 1 base de datos que lleve el control de ventas en 1 concesionario, tanto de coches como de repuestos. El problema es a la hora de facturación, hay que ver que se ha vendido de coches y que de repuestos y modificar la tabla de facturación.
He utilizado la sentencia INSERT INTO.
Intenté hacerlo sin utilizar query y me encontré con el problema que me modificaba la tabla perfectamente, pero no me guardaba los datos.
En primer lugar, el fallo puede ser que no se que propiedades hay que cambiar en el elemento Query.
el código es el siguiente:

Table10->Active = true;
Query1->Close();
Query1->SQL->Clear();
AnsiString factura="INSERT INTO Facturacion(Cantidad, Id.Producto, Nombre del Producto, Id.Cliente, Nombre del cliente, Apellido del cliente, Teléfono del cliente, Precio de la compra) VALUES (" ;

factura =factura + "'";
factura =factura + Edit2->Text;
factura =factura + "','";
factura =factura + Table4->FieldValues["Id. Accesorio"];
factura =factura + "',";
factura =factura + Table4->FieldValues["Accesorio"];
factura =factura + "',";
//localizamos el cliente en la tabla de clientes
Table2->Locate("Nombre",Edit1->Text,Opt);
//introducimos los datos del cliente en la facturación
factura =factura + Table2->FieldValues["Clientes"];
factura =factura + "',";
factura =factura + Table2->FieldValues["Nombre"];
factura =factura + "',";
factura =factura + Table2->FieldValues["Apellidos"];
factura =factura + "',";
factura =factura + Table2->FieldValues["Teléfono"];
factura =factura + "',";
//comprobamos cuantas unidades de producto quiere el cliente para calcular su precio final
if ((Text=Edit2->Text.ToInt())!= 1)
{
factura =factura + (Text=((Edit2->Text.ToInt()) * Table4->FieldValues["Precio"]));

}
else if ((Text=Edit2->Text.ToInt())== 1)
{
factura =factura + Text=Table4->FieldValues["Precio"]; ;

}
factura=factura + ")";
Query1->SQL->Add(factura);
Query1->ExecSQL();
Table10->Refresh();


Al poner puntos de ruptura, me dí cuenta que factura lo calcula bien, el fallo está en la última línea (Query1->ExecSQL();) y me da 1 error que dice algo así como:"Invalid use of Keyword. Token del Line Number:1."
Gracias.


adaypr 17-08-2006 20:49:21

añadir a la pregunta
 
:confused: Creo que lo que falla es que no sé la sentencia que hay que poner en la propiedad SQL., ya que quiero introducir varios datos a la vez en la tabla.
quiero copiar factura, que es 1 fila con todos los parámetros en la base de datos facturación.

nemesio 17-08-2006 23:17:08

A simple vista lo que estoy viendo es que tienes unos nombres de campos no validos "Nombre del cliente", "Nombre del producro". Te aseguro que ningun manejador de Base de datos te ha permitido crear un campo con esa sintaxis.
Para crear una variable o un campo de una tabla no puedes dejar espacios en blanco. Esa es una de las tantas regglas que hay.
Comienza por revisar cada uno de los nombres y colocalos tal cual están en tu tabla.

Saludos

adaypr 18-08-2006 02:14:08

Gracias, me has ayudado a empezar a ver el problema

roman 18-08-2006 02:49:26

Cita:

Empezado por nemesio
Te aseguro que ningun manejador de Base de datos te ha permitido crear un campo con esa sintaxis.

Estee.... sí se puede. Al menos en MySql e incluso en Paradox se pueden usar nombres de campos con espacios. Claro que es poco recomendable pues es engorroso referirse a ellos y hay que encerrarlos entre caracteres especiales. En MySql se usan apóstrofes inversos: `.

// Saludos


La franja horaria es GMT +2. Ahora son las 20:41:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi