Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Error al ejecutar consulta (https://www.clubdelphi.com/foros/showthread.php?t=41264)

mierda 11-03-2007 21:06:53

Error al ejecutar consulta
 
Buenas a todos ... tengo un problema y no se q es lo que falla, me explico:

utilizo delphi 7 contra una base de datos access 2003
tengo 2 tablas, una propia del access y otra vinculada de un sql server 2000

el problema es q tengo una consulta en el access que funciona correctamente:


Código SQL [-]
INSERT INTO tarticulo SELECT dbo_articulos.id AS id,'' as clase, dbo_articulos.descripcion AS descripart,'' as rutafoto, '' as nombrecliente, dbo_articulos.precio AS precio,'' as idcliente FROM dbo_articulos





pero cuando la ejecuto desde el delphi:


Código Delphi [-]
cadena := 'INSERT INTO tarticulo SELECT dbo_articulos.id AS id,'' as clase, dbo_articulos.descripcion AS descripart,'' as rutafoto, '' as nombrecliente, dbo_articulos.precio AS precio,'' as idcliente FROM dbo_articulos';
datos.Qimportpv.Close;
datos.Qimportpv.sql.Clear;
datos.Qimportpv.sql.add(cadena);
Datos.Qimportpv.execsql;





me dice que el numero de campos no son iguales. Pero si en access si funciona!!! se le va la chapa a mi ordenata :)?!?!

Muchas gracias

basti 11-03-2007 22:06:36

El problema está en la asignación a cadena,

cadena := 'INSERT INTO tarticulo SELECT dbo_articulos.id AS id,'' as clase, dbo_articulos.descripcion AS descripart,'' as rutafoto, '' as nombrecliente, dbo_articulos.precio AS precio,'' as idcliente FROM dbo_articulos';

Las comillas que pones en Acces para asignar cadenas vacías a los campos, Delphi las interpreta como una sóla comilla. Prueba esto:
Código Delphi [-]
cadena := 'INSERT INTO tarticulo SELECT dbo_articulos.id AS id,' + QuotedStr('') + ' as clase, dbo_articulos.descripcion AS descripart,' + QuotedStr('') + ' as rutafoto, ' + QuotedStr('') + ' as nombrecliente, dbo_articulos.precio AS precio,' + QuotedStr('') + ' as idcliente FROM dbo_articulos';

En vez de de QuotedStr(''), podrías poner '''' (4 comillas), pero no resulta muy legible.


La franja horaria es GMT +2. Ahora son las 14:35:29.

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