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

Recordcount me devuelve un -1 :(

Estas en el tema de Recordcount me devuelve un -1 :( en el foro de ASP Clásico en Foros del Web. Hola amigos, tengo un pequeño problema llevo horas y horas, buscando una solucion, mi problema es que tengo un sencillo programa en el que me ...
  #1 (permalink)  
Antiguo 30/07/2007, 16:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 215
Antigüedad: 18 años, 1 mes
Puntos: 0
Recordcount me devuelve un -1 :(

Hola amigos, tengo un pequeño problema llevo horas y horas, buscando una solucion, mi problema es que tengo un sencillo programa en el que me conecto a una base de datos de citadel, con odbc, la conexion esta hecha pero el recordcount me devuelve un -1 y no entiendo porque, ya busque al respecto e hize lo que sugieren pero se sigue quedando con -1. Ojala alguien pueda ayudarme, aqui esta el codigo.


dim myConn
dim myRecordset
Const adCmdText = &H0001
Const adOpenStatic = 3

set myConn = CreateObject("ADODB.Connection")
set myRecordset = CreateObject("ADODB.Recordset")

myConn.Open "DSN=C__sarp_simulado_BDsimulado"
mySQLCmdText = "SELECT aliasname FROM NICIT.aliases"
'myRecordset.CursorType=1
myRecordset.Open mySQLCmdText, myConn,adOpenStatic,adCmdText
set Flds = myRecordset.Fields

Response.Write( myRecordset.RecordCount & " encontrados.")
registros_mostrados = 0
While (NOT myRecordset.EOF)
registros_mostrados = registros_mostrados +1
response.Write(VbCrlf)
parametro=myRecordset.Fields.Item("AliasName").Val ue
response.Write(parametro)
mySQLCmdText2 = "SELECT loggingTime, &parametro from rawdata"
response.Write(mySQLCmdText2)
myRecordset.MoveNext()
wend


If myRecordset.RecordCount < 1 then
response.write "no hay registros"
' Main = DTSTaskExecResult_Failure
Else
response.write "si encontro registros"
' Main = DTSTaskExecResult_SuccessMain = DTSTaskExecResult_Success
End If
If myConn.errors.count = 0 Then

Response.Write "Connected OK"
Response.Write registros_mostrados

End If

Me aparece, connected OK, y me aparece ke no hay registros, mientras en while, si se estan impriendo, ayuda con el recordcount please
  #2 (permalink)  
Antiguo 30/07/2007, 16:10
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 6 meses
Puntos: 53
Re: Recordcount me devuelve un -1 :(

la verdad creo que ese problemita se deberiba del tipo de conector que usas, Que Es Mysql deberías revisar si hay otro tipo de conector un tanto más reciente te pordría ayudar...

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 30/07/2007, 18:56
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Recordcount me devuelve un -1 :(

hola, pienso que en lugar de utilizar el Recordcount deberías utilizar la propiedad EOF.

If recordset.EOF Then
Resposne.Write("No Existen Registros")
Else
Response.Write("Existen Registros")
End If

la propiedad Recordcount no funciona tan bien en ASP como lo hace en Visual Basic y si m preguntas el porque... pues bueno eso solo Bill Gates podrá averiguarlo no???
  #4 (permalink)  
Antiguo 31/07/2007, 08:42
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: Recordcount me devuelve un -1 :(

Cita:
Iniciado por marcocho2005 Ver Mensaje
hola, pienso que en lugar de utilizar el Recordcount deberías utilizar la propiedad EOF.

If recordset.EOF Then
Resposne.Write("No Existen Registros")
Else
Response.Write("Existen Registros")
End If

la propiedad Recordcount no funciona tan bien en ASP como lo hace en Visual Basic y si m preguntas el porque... pues bueno eso solo Bill Gates podrá averiguarlo no???
En realidad el recordcount de ADO no funciona bien en nada, en visual basic tampoco funciona, la recomendacion de usar el EOF me parece muy saludable...
  #5 (permalink)  
Antiguo 31/07/2007, 08:55
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Recordcount me devuelve un -1 :(

Y para saber la cantidad de registros en una tabla no hay nada como una sentencia SQL

SELECT Count(*) as RecordCount FROM tabla

:P


Luego no tienes mas que leer la variable creada por el motor de SQL

response.write("Num. Registros: " & rs("RecordCount"))




Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #6 (permalink)  
Antiguo 01/08/2007, 08:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 215
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Recordcount me devuelve un -1 :(

Oigan, por un momento olvide lo de el recordcount

Pero ahora, miren les explico brevemente, tengo dos bases de datos una es citadel propia de un software llamado labview, y la otra es sql server, necesito consultar citadel e insertar en sql server, pero citadel tiene algunas limitantes, entonces primero hago una consulta para saber nombres de variables, despues en un ciclo por cada variable tengo ke consultar su valor y su fecha(loggingTime)
creo que ya tengo mi programa hecho, ya mande imprimir mis querys y estan correctos, pero ocurre algo raro, que cuando lo ejecuto me manda un error, algo de ke esta mal la sintaxis algo d un parentesis ") "

Pero no se que pueda ser, no entiendo, ayuda por favor......



dim myConn
dim myRecordset
Const adCmdText = &H0001
Const adOpenStatic = 3
'Origen CITADEL
set myConn = CreateObject("ADODB.Connection")
set myRecordset = CreateObject("ADODB.Recordset")
set myRecordset2 = CreateObject("ADODB.Recordset")
myConn.Open "DSN=C__sarp_simulado_BDsimulado"
mySQLCmdText= "SELECT aliasname FROM NICIT.aliases"'ORDER BY (aliasname) DESC"
myRecordset.Open mySQLCmdText, myConn,adOpenStatic,adCmdText

' Destino SQL SERVER
dim id_senal, fecha, valor
set myDestConn = CreateObject("ADODB.Connection")
myDestConn.Open = "Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=SMRP;user id ='sa';password='sa'"
registros_mostrados = 0
cont=0



While (NOT myRecordset.EOF)
registros_mostrados = registros_mostrados +1
parametro=myRecordset.Fields.Item("AliasName").Val ue
mySQLCmdText2 = "SELECT loggingTime," & Chr(34) &parametro& Chr(34) & " from rawdata WHERE LoggingTime BETWEEN "&Chr(39)&"2007-07-05 21:00:00" &Chr(39)&" AND "&Chr(39)&"2007-07-07 22:00:00"&Chr(39)
mySQLCmdText2 = "SELECT loggingTime," & Chr(34) &parametro& Chr(34) & " from rawdata "
response.write(mySQLCmdText2)&"<br>"
myRecordset2.Open mySQLCmdText2, myConn,adOpenStatic,adCmdText


While (NOT myRecordset2.EOF)
'pos=Instr(8, parametro, "/")
id_senal=(Mid(parametro,pos+1,8))
valor=myRecordset2.Fields.Item(parametro).Value
'fecha=myRecordset2.Fields.Item("loggingTime").Val ue
fecha=(Mid(fecha,1,19))

SELECT CASE (Mid(id_senal,1,1))
' CASE ("A"):
' myDestSQL="INSERT INTO valores_analogicos_Vb VALUES ("&Chr(39)& id_senal& Chr(39) &","&Chr(39)&fecha&Chr(39)&","&valor&")"
response.write(myDestSQL)&"<br>"

myDestConn.Execute myDestSQL
myDestSQL=" "

CASE ("L"):
' RESPONSE.Write("ES BINARIA")

CASE ("F"):
RESPONSE.Write("ES FALLA")

END SELECT
response.write(valor&"<br>")
response.write(fecha&vbCrLf &"<br>")
myRecordset2.MoveNext()
wend
myRecordset2.close
set myRecordset2=nothing
myRecordset.MoveNext()
wend

Main = DTSTaskExecResult_Failure
If myConn.errors.count = 0 Then
Response.Write "Connected OK"
Response.Write registros_mostrados
End If



Me marca error en la linea ke ejecuta el insert, pero hice un ejemplo por separado dond solo inserto un registro y si lo hace bien, no se ke pueda pasar, ojala puedan ayudarme.-....
  #7 (permalink)  
Antiguo 02/08/2007, 23:26
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Recordcount me devuelve un -1 :(

hola sugey, por que no modificas tu sentencia INSERT, sustituyendo los char(39), por el simbolo directo, ademas de que los campos que contengan "_-,.," etc, ponerlos entre corchetes

solo como observacion

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 03/08/2007, 14:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 20 años
Puntos: 1
Re: Recordcount me devuelve un -1 :(

El problema del recordcount me parece que por el tipo de reocrdset. Yo los configuro de la siguiente manera para funcione el recordcount:
CursorType = 1
CursorLocation = 3
LockType = 1

Lo otro, la verdad que no sabria como ayudarte....
__________________
Nadie nacío sabiendo...
  #9 (permalink)  
Antiguo 03/08/2007, 19:08
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: Recordcount me devuelve un -1 :(

Su, la sentencia que te da error es: ' myDestSQL="INSERT INTO valores_analogicos_Vb VALUES ("&Chr(39)& id_senal& Chr(39) &","&Chr(39)&fecha&Chr(39)&","&valor&")" ?? te has fijado que esta en comentarios??

no recuerdo cual es el caracter Chr(39) me refrescas la memoria? por lo del error me parece que tiene que ver con los valores de los campos Id_Senal, valor ya que con estos se arma dinamicamente la cadena, una pregunta el campo donde se debe almacenar el valor de valor en la BD es un String? si es así creo que el error es que le faltan las comitas de texto de SQL, prueba con esto por ejemplo

Código:
' myDestSQL="INSERT INTO valores_analogicos_Vb VALUES ("&Chr(39)& id_senal& Chr(39) &","&Chr(39)&fecha&Chr(39)&",'"&valor&"')"
Espero que esto ayude


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #10 (permalink)  
Antiguo 03/08/2007, 19:14
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: Recordcount me devuelve un -1 :(

Ahh!!! lo del RecordCount!! lo olvidaba, coincido con los compañeros, no uses el RecordCount, que es una soberana burla de MS..... mejor haz un:
Código:
SELECT Count(1)
FROM TuTabla
asignalo a una variable tipo output y recuperalo para que lo puedas leer


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #11 (permalink)  
Antiguo 06/08/2007, 10:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Recordcount me devuelve un -1 :(

Cita:
Iniciado por sanref Ver Mensaje
El problema del recordcount me parece que por el tipo de reocrdset. Yo los configuro de la siguiente manera para funcione el recordcount:
CursorType = 1
CursorLocation = 3
LockType = 1

Lo otro, la verdad que no sabria como ayudarte....
Esa es la respuesta correcta, no es que el recordcount no sirva, lo que pasa es que depende directamente del tipo de cursor.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 17:16.