Power Builder - Problema con Datawindow y argumentos

 
Vista:

Problema con Datawindow y argumentos

Publicado por Natty (13 intervenciones) el 16/02/2007 17:44:29
Hola a todos
Tengo un problema con un Datawindow que al meter argumentos o parametros me crea conflicto, ahorita estoy ocupando SQL Express 2005 ( con Sql Anywhere funciona correctamente )con Power Builder 7.0.3

El select n general es:

SELECT dba.det_poliz.cuen_num_cuenta,
dba.det_poliz.tipo
(SELECT
ISNULL(SUM(A.cargo) - SUM(A.abono),0)
FROM dba.det_poliz A, dba.poliza B
WHERE B.id_sucursal =A.id_sucursal
AND B.mes = :ars_mesini
AND B.anio = ltrim(rtrim(str(year(:ard_fechaini)))) <- AQUI NO ME PERMITE EL ARGUMENTO
AND B.fecha < :ard_fechaini
) AS Movtos_fechaini,

dba.pol.fecha
FROM dba.det_poliz,
dbo.##conta

WHERE dba.det_poliz.cuen_num_cuenta dbo.##conta.cuen_num_cuenta and
dba.det_poliz.cuen_num_cuenta between :cta_ini AND :cta_fin AND <- AQUI TAMPOCO
dba.pol.fecha between fechaini AND :fechafin <- AQUI TAMPOCO


En la base de Datos esta:

det_poliz.cuen_num_cuenta tipo CHAR y el argumento que paso :cta_ini como STRING
dba.pol.fecha tipo DATETIME el argumento que paso :fechafin y :fechaini DATE

Al visualizar el reporte con los argumentos que meti, me visualiza varios errores como:

ERROR 1:
Select Error: SQLSTATE =3300
The multi-part identifier "dba.dat_pol.fecha" could not be found

ó
ERROR 2:
Select Error: SQLSTATE =07001
Unable to derive parameter information when parameter marker is a function argument

Me pregunto será la conectividad o es la consulta??

Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con Datawindow y argumentos

Publicado por pb (7 intervenciones) el 16/02/2007 18:50:11
Hola.
tienes una consulta general y dentro de esta consulta una subconsulta cierto ?.
veo que en tu consulta general obtienes de la tabla registros de la tabla det_polis y tambien en la subconsulta obitnes de la misma tabla pero a esta tabla lo has asignado un alias verdad ?.
que pasaría si quitas en la subconsulta la parte dba.det_poiz A
quedaría algo asi

(SELECT ISNULL(SUM(det_poliz.cargo) - SUM(det_poliz.abono),0) FROM dba.poliza B
WHERE B.id_sucursal =det_poliz.id_sucursal
AND B.mes = :ars_mesini
AND B.anio = ltrim(rtrim(str(year(:ard_fechaini)))) <- AQUI NO ME PERMITE EL ARGUMENTO
AND B.fecha < :ard_fechaini ) AS Movtos_fechaini,

porque es probable, no estoy seguro que exista una ambiguedad al recuperar registros en tu consulta. es para ir descartando posibles errores, si el problema persiste comentalo para ver la manera de solucionar tu errror.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con Datawindow y argumentos

Publicado por Natty (13 intervenciones) el 16/02/2007 23:50:42
Tienes mucha razón ya solucione ese problema, pero como tengo en la consulta un UNION ALL , la segunda consulta marca el error:

Select error: SQLSTATE = 37000
[Microsoft][SQL Native Client][SQL Server] The multi-part identifier "dbo.##conta_temp.cuen_num_cuenta" could not be bound

Te pego la consulta del Datawindow:

SELECT dbo.##conta_temp.cuen_num_cuenta,
'',
null,
dba.suc.cve,
'',
null,
null,
CAST(:ard_fecini AS char),
0,
0,
'',
IsNull(dbo.##conta_temp.saldo_inicial, 0) AS saldo_inicial,
0,
null,
dbo.##conta_temp.saldo_final,
dbo.##conta_temp.cargo,
dbo.##conta_temp.abono,
dbo.##conta_temp.nombre_cta,
1 as movimiento
FROM dbo.##conta_temp,
dba.suc
WHERE
dbo.##conta_temp.id_sucursal = dba.suc.id_sucursal and dbo.##conta_temp.tipo_cta = 'D' AND
dbo.##conta_temp.cuen_num_cuenta between :ars_cuenta AND :ars_cuentafin AND
dbo.##conta_temp.mes = :ars_mesini AND dbo.##conta_temp.anio = CAS(:ard_fecini AS char) AND
IsNull(dbo.##conta_temp.cargo,0) = 0 AND
IsNull(dbo.##conta_temp.abono,0) = 0 AND
(
(:ari_salcero = 1 AND IsNull(dbo.##conta_temp.saldo_inicial,0) = 0 ) OR
IsNull(dbo.##conta_temp.saldo_inicial,0) <> 0
)

Probablemente el error este dentro del WHERE de la 3era. a la 6ta. linea como se muestra en el código, ya que si los quito todo sale correcto...

Alguna sugerencia??

Les agradezco mucho su tiempo
Saludos!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con Datawindow y argumentos

Publicado por Miguel Sangucho (1 intervención) el 06/12/2008 04:19:52
Hola, necesito de su ayuda tengo en sigueinte script:
Estoy programando en power builder con mi base en sql 2005
y me sale aquel error sqlstate 37000 the multi-part identifier en mi tabla sg_control persona.fecha_hora
adjunto mi script

SELECT distinct(sg_control_persona.id_emp),
convert( char(10), sg_control_persona.fecha_hora,103) AS FECHA,
cast(ad_empleado.nombre_emp as varchar(30)) + ' ' + cast(ad_empleado.apellido_emp as varchar(30)) as empleado,
case when ( select count(*) from sg_control_persona a where a.concepto='ENTRADA' and a.id_emp=sg_control_persona.id_emp and convert( char(10), fecha_hora,103)=convert( char(10), sg_control_persona.fecha_hora,103 )) > 0 then CONVERT(char(8),fecha_hora,108) else '00:00:00' end as ENTRADA,
case when ( select count(*) from sg_control_persona a where a.concepto='SALIDA' and a.id_emp=sg_control_persona.id_emp and convert( char(10), fecha_hora,103)<>convert( char(10), sg_control_persona.fecha_hora,103 )) > 0 then CONVERT(char(8),fecha_hora,108) else '00:00:00' end as SALIDA,
case when ( select count(*) from sg_control_persona a where a.concepto='FUERA HORADIO' and a.id_emp=sg_control_persona.id_emp and convert( char(10), fecha_hora,103)=convert( char(10), sg_control_persona.fecha_hora,103 )) > 0 then CONVERT(char(8),fecha_hora,108) else '00:00:00' end as ATRASO,
ad_empleado.identificacion
FROM sg_control_persona,
ad_empleado
WHERE ( ad_empleado.id_emp = sg_control_persona.id_emp ) and
( sg_control_persona.fecha_hora between :desde and :hasta )

espero me puedan ayudar ya que es mi proyecto de tesis y no puedo pasar de ahi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar