Foros del Web » Programando para Internet » ASP Clásico »

Cambio de Versión del CR, Error de Consulta en SQL

Estas en el tema de Cambio de Versión del CR, Error de Consulta en SQL en el foro de ASP Clásico en Foros del Web. Hola buenas tardes, tengo un problema muy grave espero me puedan dar consejos acerca de éste error, tengo dias tratando de arreglarlo. Estoy dando soporte ...
  #1 (permalink)  
Antiguo 12/10/2006, 22:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
Cambio de Versión del CR, Error de Consulta en SQL

Hola buenas tardes, tengo un problema muy grave espero me puedan dar consejos acerca de éste error, tengo dias tratando de arreglarlo. Estoy dando soporte a unos reportes todos funcionaban en el CR 9 y Server 2000, migraron el sistema a server 2003 y CR XI pero ahora no funciona ninguno y era por los hot fixes y service pack, ahora ya funcionan todos excepto un reporte que es el más importante de la empresa , éste reporte el primer problema que dió es que tomaba la consulta de una sola fecha 01-06-2006 aunque tu ingresaras una fecha a consultar siempre daba la fecha 01... El sistema maneja un procedimiento almacenado que es donde se desarrolla todo el proceso del reporte, solicité soporte a los del Crystal y me dijeron que mi problema era porque el CR XI no soporte en los SP lo que eran las sintaxis INSERT, UPDATE, CREATE,.. ja todo el SP.. pero no creo que ése sea el problema...he tratado de arreglar esto de mil maneras y no encuentro ninguna solución. POdrían aconsejarme? Mil gracias

Att Monica Palacios
  #2 (permalink)  
Antiguo 13/10/2006, 07:18
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
y me dijeron que mi problema era porque el CR XI no soporte en los SP lo que eran las sintaxis INSERT, UPDATE, CREATE,.. ja todo el SP.. pero no creo que ése sea el problema.
¿Quéeee?

A ver .... vamos por partes.

Veo que te funcionan todos los reportes, es decir, ya no tienes problemas por los archivos de inclusión, que es el problema normal en el cambio de versiones.

Tambien veo que tu único problema es que el reporte no hace el filtro correcto o no muestra la información que en verdad quieres, pero si te muestra (es decir, si hay conexión con la BD's).

¿voy bien o me regreso?


Ahora mi duda es, ¿tu SP te regresa un cursor de datos?, digo por que mencionas algo del DML de SQL pero no entiendo su papel en el problema.

Si ese SP solo te regresa el cursor de datos, es decir, es una vista parametrizada entonces no hay razón para que no te funcione. Yo me hiría entonces en cómo le mandas los parámetros al CR desde ASP, ¿cómo lo haces? (parámetros, funciones, etc.)

¿Que pruebas has hecho?, para ya no considerarlas.

Saludos
  #3 (permalink)  
Antiguo 13/10/2006, 08:27
 
Fecha de Ingreso: octubre-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola , si efectivamente manejo un cursor, en éste reporte hace consulta u referencia de un solo dato (1 de junio) y de ahi no se actualiza o no toma los datos de la base de datos, haciendo modificaciones ahora no me toma ninguna conexión de SQL y eso me imposibilita las cosas, anexo el código para llamar al procedimiento y el de asp donde se toma el reporte en si. gracias
<?
set_time_limit(0);
$tArchivoXml="registro.xml";
require("./parsexml.php");
// Estos cookies hacen referencia a la base de datos.

/* $db_db = 'FUELNET';
$db_host = 'localhost';
$db_user = 'sa';
$db_password = '12345';*/
$db_db = $tDb;
$db_host = $tHost;
$db_user = $tUser;
$db_password = $tPass;

require("./comun.php");

// Primero necesito una conexion a la bse de datos.
$cnConexion = new db();
$cnConexion->abrir($db_db, $db_host, $db_user, $db_password);

?>

<html>
<head>

<link href="style/style.css" rel="stylesheet" type="text/css">
<title>Verificacion de Ventas por estación</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?
// cambio el formato de la fecha.
$dia = substr($fecha,0,2);
$mes = substr($fecha,3,2);
if (strlen($fecha) == 10)
$ano = substr($fecha,6,4);
else
if (strlen($fecha) == 9)
$ano = substr($fecha,5,4);
else
if (strlen($fecha) == 8){
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,3);
$ano = substr($fecha,4,4);
}
//Obtengo el dia y valido que este sea con dos digitos
$day =substr($dia, 1, 1);
if ($day=="-" or $day=="/" or $day==" ") $day='0'.substr($dia,0,1);
else $day = $dia;
$dia = $day;

//Obtengo el mes y valido que este sea con dos digitos
$month =substr($mes, 1, 1);
if ($month=="-" or $month=="/" or $month==" ") $month='0'.substr($mes,0,1);
else $month = $mes;
$mes = $month;
echo("$mes<br>");
/* $day =substr($dia, 1, 1);
if ($day=="-" or $day=="/" or $day==" ") $day='0'.substr($fecha,0,1);
else $day = $dia;
$dia = $day;*/
echo("$dia-$mes");
if (!checkdate($dia,$mes,$ano)){
$dia = substr(date("d-m-Y"),0,2);
$mes = substr(date("d-m-Y"),3,2);
$ano = substr(date("d-m-Y"),6,4);
}

$fecha = $dia."-".$mes."-".$ano;
// ejecuto una consulta con el servidor y con eso cre oun cursor
$tExecut = "exec SP_VentasxEstacion '" . $fecha . "'";
echo('Consulta SP -> ' . $tExecut);
$cursor = new consulta($cnConexion, $tExecut);
$Renglon = $cursor->fetch();
echo("<br>Ingresos". $Renglon[IngresosHoy]);
?>
</body>
</html>
  #4 (permalink)  
Antiguo 13/10/2006, 08:29
 
Fecha de Ingreso: octubre-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
y éste otro archivo se llama ADORecordset.asp qe es donde se abre la conexión
<%@ LANGUAGE="VBSCRIPT" %>
<%

permiso = request.QueryString("permiso")
reportname = "./Reportes/comovamos.rpt"
reportname1 = "./Reportes/Sub1comovamos.rpt"
'reportname = "./Reportes/Subcomovamos.rpt"
%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%
set CRSubreports = session("oRpt").OpenSubReport(reportname1)
if permiso = 1 then
razonSocial = request.QueryString("Descripcion_Cliente")
fechaInicial = request.QueryString("FechaInicial") 'fecha inicial
'fechaFinal = Year(fechaInicial) & "-" & Month(fechaInicial) & "-" & Day(fechaInicial)
fechaInicial = Year(fechaInicial) & "-" & Day(fechaInicial) & "-" & Month(fechaInicial) & " 00:00"
'This line creates an ADO Connection object
Set oADOConnection = Server.CreateObject("ADODB.Connection")
'can then open a connection to the Database DSN.
oADOConnection.Open ("DsSite")
'This line creates an ADO Recordset object
Set oADORecordset = Server.CreateObject("ADODB.Recordset")
'Set crRep = Server.CreateObject("CRAXDRT.Report")
Set oADOSubRecordset = Server.CreateObject("ADODB.Recordset")
'We can then populate the recordset object by executing a SQL statement
'agains the database (using the connection object)
'Set oADORecordset = oADOConnection.Execute("exec SP_VentasxEstacion @Fecha = '2006-10-06'")

'texto1 = "SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON DECLARE @SQLString NVARCHAR(500) SET @SQLString = 'exec SP_VentasxEstacion @Fecha = "
'texto1 = Replace(texto1,"'","&quot;")

'texto2 = "' + CHAR(13) SET @SQLString = @SQLString + 'exec SP_InventariosxEstacion @Fecha = "
'texto2 = Replace(texto2,"'","&quot;")

'texto3 = "' + CHAR(13) EXEC sp_executesql @SQLString"
'texto3 = Replace(texto3,"'","&quot;")
'texto = texto1 & "'2006-06-10'" & texto2 & "'2006-06-10'" & texto3
'response.Write(texto)

'Set oADORecordset = oADOConnection.Execute(texto)

Set oADORecordset = oADOConnection.Execute("exec SP_VentasxEstacion @Fecha = '" & fechaInicial & "'")
Set oADOSubRecordset = oADOConnection.Execute("exec SP_InventariosxEstacion @Fecha = '" & fechaInicial & "'")
'Set oADORecordset = oADOConnection.Execute("exec SP_InventariosxEstacion Fecha = '" & fechaInicial & "' +'go' + char(13)")
'Set oADORecordset = oADOConnection.Execute("Select [Employee ID],[First Name], [Last Name] From Employee Where [Employee ID] >= 13")
'response.Write("Query " & fechaInicial & "<br> RPT" & reportname)
'This line creates a reference to a table object for the report. With ADO each report
'should only contain a single table as all the data will be supplied by the recordset.
Set oRptTable = session("oRpt").Database.Tables.Item(1)
'Once we have a reference we can then set the tables datasource to be the recorset object.
oRptTable.SetDataSource oADORecordset, 3
'response.Write("Result " & oADORecordset(0) & "<br>")
'Do While Not oADORecordset.EOF
'response.Write("Result " & oADORecordset(0) & "<br>" & oADORecordset(3)& "<br>")
'oADORecordset.MoveNext
'Loop
Set oRptSubTable = CRSubreports.Database.Tables.Item(1)
oRptSubTable.SetDataSource oADOSubRecordset, 3
'Set crRep = Nothing

'Session("oRpt").Refresh()
response.Write("Fecha" & fechaFinal)
Session("oRpt").FormulaFields.GetItemByName("Encab ezado").Text = CStr("'" & razonSocial & "'")
Session("oRpt").ParameterFields.GetItemByName("@Fe cha").AddCurrentValue(CDate(fechaInicial))
Session("oRpt").ParameterFields.GetItemByName("@Fe cha", "Sub2comovamos").AddCurrentValue(CDate(fechaInicia l))
'Session("oRpt").ParameterFields.GetItemByName("da te").AddCurrentValue(CDate(fechaFinal))
end if
%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartVieweractivex.asp" -->
  #5 (permalink)  
Antiguo 13/10/2006, 09:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
A la otra, procura quitarle los comentarios al código para que sea más fácil de leer y encierralos entre etiquetas CODE en vez de QUOTE

veamos.

Primero: Verifica que NO estas guardando el .rpt con datos, eso lo haces en el menu file del CR.

Segundo: Si permiso no es 1, no tienes un código que maneje el caso.

Tercero: No veo donde estas mandando las credenciales de autentificación al CR. Deberias de tener algo como:

Set mainReportTableCollection = Session("oRpt").Database.Tables
For Each Table in mainReportTableCollection
Table.SetLogonInfo "1.1.1.1", "NomDataBase", "User", "Password"
Next


La verdad es que no he entendido del todo tu escenario. Es decir, ya no se si sí te muestra el reporte pero con la misma información o si no te muestra nada.
  #6 (permalink)  
Antiguo 13/10/2006, 12:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
Errores

Bueno, ya no sé que suceda,.. éste sistema no lo realicé yo por eso ando en estos conflictos... mi principal problema es que no me toma los datos de la base de datos y sólo me muestra los de una sola fecha.. te paso bien los códigos? Gracias

Att Monica
  #7 (permalink)  
Antiguo 13/10/2006, 13:13
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 20 años, 8 meses
Puntos: 1
Yo opino, que trates primero de ver si tu conexion con la base de datos es exitosa, independientemente de la fecha primero realiza una simple consulta para ver si la bd esta haciendo bien la conexion.

Una vez que veas que tu conexion si es buena, revisa la variable o el lugar donde estas guardando la fecha.

No se quizas sea una tonteria pero quizas este tomando la fecha en otro formato
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #8 (permalink)  
Antiguo 13/10/2006, 13:52
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
mi principal problema es que no me toma los datos de la base de datos y sólo me muestra los de una sola fecha..
Bueno, entonces lo màs seguro es que se solucione si haces caso a la recomendación 1 de mi post anterior: "Revisa que NO este guadando el reporte con datos (Menu Archivo del CR)"
  #9 (permalink)  
Antiguo 20/10/2006, 16:50
 
Fecha de Ingreso: octubre-2006
Mensajes: 25
Antigüedad: 18 años, 6 meses
Puntos: 0
CRAXDTR , error de consulta y conexión con SQL

Holap de nuevo a todos, un nuevo error con el Crystal y el SQL, ya pude realizar la conexión entre ambos pero dentro del reporte de Crystal.. pero no me hace consulta.. pero en la web , cuando consulto la página me da el error de CRAXDTR del visor: Error Ocurred on Server, la Conexión no es posible. , podrán decirme el porqué!!! supuestamente ha el reporte y la conexión está bien pero pues no veo que haga en realidad ésta consulta.
Les agradecería mucho su información. Saludos
Att Mónica Palacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:36.