Ver Mensaje Individual
  #52  
Antiguo 17-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
¿Cómo los guardaría?
Con una instrucción SELECT. Suponiendo que se trata de ADO...

Algo así:

Código Delphi [-]
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO tabla (campo1, campo2, ..., campoN)');
Query1.SQL.Add('VALUES (:parametro1, :parametro2, ... :parametroN');

Query1.Parameters.ParamByName('parametro1').Value := ....
Query1.Parameters.ParamByName('parametro1').Datatype := ft.....
....
Query1.Parameters.ParamByName('parametroN').Value := ....
Query1.Parameters.ParamByName('parametroN').Datatype := ft.....
Query1.ExecSQL;

El asunto es que no interesan donde mantengas "guardados" los datos en forma temporal hasta meterlos en la tabla, puede ser en una Celda de un TStringList, en un TLabel, un TEdit, una variable, en una posición de algún vector, ... lo importante es que los parámetros sean del tipo correcto (DataType) y que respetemos el orden en como asignemos los valores que asumirán los parámetros. Es decir que si en el SQL pusimos primero A, B y C, en values deben seguir el mismo orden orden: A, B y C.

Esta instrucción INSERT es una de las formas en como se puede declarar, y se puede (o debe mejor dicho) emplear cuando no necesariamente se ingresan todos los campos o los campos a mencionar no están en el mismo orden en que están declarados en la tabla.

En el caso de que se asume que todos los datos se van a suministrar, podemos evitarnos nombrar los campos. Pero he aquí que la instrucción SQL debe ser de esta forma:

Código SQL [-]
INSERT INTO tabla VALUES (....)

Y aquí, necesariamente (y obligadamente) debemos respetar el orden de los campos en la tabla al pasar los valores en la parte "VALUES".

No se si me explico, espero que se entienda la idea. Si tienes dudas, ya nos dirás.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 17-10-2008 a las 02:46:33. Razón: error en las etiquetas NOPARSE
Responder Con Cita