Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ERROR. alguien que me ayude (https://www.clubdelphi.com/foros/showthread.php?t=3616)

Markoz 13-09-2003 07:41:16

ERROR. alguien que me ayude
 
CREATE PROCEDURE SELTMPVENTA
RETURNS (
ART VARCHAR (80),
PV NUMERIC (15, 2),
CLI VARCHAR (50),
FEC DATE,
CF VARCHAR (2),
FOL INTEGER,
MV VARCHAR (50),
SUBT NUMERIC (15, 2),
DES NUMERIC (15, 2),
VT NUMERIC (15, 2),
ABO NUMERIC (15, 2),
ANT NUMERIC (15, 2),
PLA NUMERIC (2, 1),
FIN NUMERIC (2, 1),
CANTIDAD INTEGER,
COD VARCHAR (6),
TNETO NUMERIC (15, 2),
TOD NUMERIC (15, 2),
TC NUMERIC (15, 2))
AS
BEGIN
FOR SELECT * FROM TMPVENTAS
INTO :ART, :PV, :CLI, :FEC, :CF, :FOL, :MV,:SUBT, :DES, :VT, :ABO, :ANT,
:PLA, :FIN, :CANTIDAD, :COD, :TNETO, :TOD, :TC
DO
SUSPEND;
END



me marca el sigiente error -
frmCompile.q_COMPILE:
count of column list and variable list do not match.
Dynamic SQL Error.
SQL error code = -313.
count of column list and variable list do not match.


alguien tiene idea???

gracias

kinobi 13-09-2003 11:14:00

Hola,

Cita:

Posteado originalmente por Markoz
... count of column list and variable list do not match.

alguien tiene idea???

Sí, utilizar el nombre de las columnas y no el asterisco (*) en la consulta que haces dentro del procedimiento ...

Código:

  FOR  SELECT * FROM TMPVENTAS ...
Saludos.

champy 16-09-2003 00:01:30

Tienes toda la razón Kinobi, pero permiteme que matize un poco la respuesta ya que el ¿PORQUE? le vendra bien si le ocurre en otra ocasion...

Veras, lo que está sucediendo es que con el * estás sacando todos los registros de la tabla ¿Que ocurre con esto? que mayor (o menor) el numero de campos que estan saliendo de * que el numero de variables en dondese almacenan con INTO... un Ejemplo...


Esto es lo correcto
Select CAMPO1, CAMPO2, CAMPO3 into :v1, :v2, v3;


Esto es lo que sin querer te está sucediendo
Select CAMPO1, CAMPO2, CAMPO3, CAMPO4 into :v1, :v2, :v3;

Un saludo y sigamos todos aprendiendo...:p


La franja horaria es GMT +2. Ahora son las 04:15:06.

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