PDA

Ver la Versión Completa : Implemetar tabla con fechas


icecold2
11-05-2003, 18:55:44
Hola a todo el grupo intento hacer este insert pero no me funciona. Las dos tablas tienen los mismos campos (en la que inserto es una copia identica de la primera). Pero cuando lo ejecuo me da Type mistmathc error. Gracias a Todos
Dm.Factura.SQL.Add('Insert into Prova');
Dm.Factura.SQL.Add('Select * from Albaran');
Dm.Factura.SQL.Add('Where fecha Between 05/01/2003 AND 05/05/2003');
Dm.Factura.Open;Dm.Factura.SQL.Add('Insert into Prova');
Dm.Factura.ExecSql;

__marcsc
11-05-2003, 19:06:26
Hola, vamos a ver, el primer insert que haces diría que está bien, pero en lugar de un Open lo que tienes que hacer es un ExecSQL. Es decir:


Dm.Factura.SQL.Add('Insert into Prova');
Dm.Factura.SQL.Add('Select * from Albaran');
Dm.Factura.SQL.Add('Where fecha Between 05/01/2003 AND 05/05/2003');
Dm.Factura.ExecSQL;


El segundo es incorrecto, porqué haces un Add de la línea 'Insert into Prova' sin haber vaciado antes el query, con lo que el query que intentas ejecutar te queda así:


Insert into Prova
Select * from Albaran
Where fecha Between 05/01/2003 AND 05/05/2003
Insert into Prova


Evidentemente ese query es incorrecto.

Saludos.

icecold2
11-05-2003, 20:20:29
Veamos lo que dices tu del primer insert es lo unico que realmente pongo y ademas lo e probado un Open y con un ExecSql, pero me sigue dando el mismo error. Muchas gracias

__marcsc
11-05-2003, 20:31:48
Ups Sorry :D

Estaba en la parra cuando te he contestado :rolleyes:

El problema es que las fechas deben ir entre comillas


Dm.Factura.SQL.Add('Insert into Prova');
Dm.Factura.SQL.Add('Select * from Albaran');
Dm.Factura.SQL.Add('Where fecha Between ' + QuotedStr('05/01/2003') + ' AND ' + QuotedStr('05/05/2003'));
Dm.Factura.ExecSQL;


Saludos ;)

icecold2
11-05-2003, 20:56:34
Me ha ido de lujo, el unico problemilla que se me a ocurrido ahora es que claro los meses siempre seran los mismos, pero como hago para cambiar el año, es decir que el año sea el que el usuario ponga en un edit. Muchas gracias

__marcsc
11-05-2003, 21:04:51
Hola de nuevo,

pues seria tan sencillo como eso:


var
fecha1, fecha2: String;
begin
//en el edit debe haber un año válido
fecha1:= '01/05/' + Edit1.Text;
fecha2:= '05/05/' + Edit1.Text;
//lanzamos el query
Dm.Factura.SQL.Add('Insert into Prova');
Dm.Factura.SQL.Add('Select * from Albaran');
Dm.Factura.SQL.Add('Where fecha Between ' + QuotedStr(fecha1) + ' AND ' + QuotedStr(fecha2));
Dm.Factura.ExecSQL;

Un saludo

icecold2
11-05-2003, 21:22:54
Gracias me ha ido perfecto lo unico que las fecha1 y fecha dos las has puesto al reves dd/mm, pero nada lo he cambiado y listo. Muchas gracias