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

Desarrollo ASP(Win)/MySQL <> Producción ASP(Linux)/MySQL

Estas en el tema de Desarrollo ASP(Win)/MySQL <> Producción ASP(Linux)/MySQL en el foro de ASP Clásico en Foros del Web. Buenas, estoy iniciando un nuevo proyecto en donde me surge la "complicación" que el servidor de producción es un Linux, que interpreta ASP mediante "Sun ...
  #1 (permalink)  
Antiguo 28/09/2005, 12:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Desarrollo ASP(Win)/MySQL <> Producción ASP(Linux)/MySQL

Buenas, estoy iniciando un nuevo proyecto en donde me surge la "complicación" que el servidor de producción es un Linux, que interpreta ASP mediante "Sun Java System Active Server Pages 4.0"

Supongo me van a surgir varias dudas o complicaciones... pero la primera de ellas es:

ASP/MySQL sobre Windows:
Código:
...
	SQL = "SELECT * FROM prueba WHERE usr ='al' AND pass = 'test'"
	Rs.Open SQL, Conn,3,3
		Response.Write Rs.RecordCount
...
Resultado: -1


ASP/MySQL sobre Linux:
Código:
...
	SQL = "SELECT * FROM prueba WHERE usr ='al' AND pass = 'test'"
	Rs.Open SQL, Conn,3,3
		Response.Write Rs.RecordCount
...
Resultado: 1

(de más está decir que los datos 'al' y 'test' son correctos, lo que no les daré es la URL )


Algún comentario al respecto?

Me interesaría los comentarios de los que han usado Win->ASP->MySQL para que compartan sus experiencias (es la primera vez que uso MySQL con ASP!!!) pero sobre todo a los que además hayan desarrollado en Linux->ASP->MySQL (es la primera vez que uso ASP en Linux!!! )

Saludos


EDIT: Error de copy&paste corregido. Decía -1 cuando en realidad era 1
__________________
...___...
  #2 (permalink)  
Antiguo 28/09/2005, 12:56
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Rs.RecordCount no sirve para mysql,
toca hacer un select count(*) as total from tutabla

y luego imprimir el rs("total")
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #3 (permalink)  
Antiguo 28/09/2005, 12:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Creo que tendras que hacer una de dos cosas:

La 1era y la 2da

La 1era, incluye tus constantes de ADO, despues necesitaras trabajar con el cursor en el cliente para tu recordset

rs.CursorLocation=adUseClient 'o bueno su equivalente numerico si no quieres incluir las constantes

La 2da:

Trabaja con GetRows y cuentas el numero de indices regresados por ese arreglo

Tuve una sola experiencia de ASP sobre Linux y con eso basta y sobra , para empezar si utilizas el metodo execute, olvidate de el, lo cual hace mas complicado correr consultas simples de insert, update y delete.

Aunque a lo mejor dos anyos despues ya actualizaron el chilisoft.

Suerte master, espero la retroalimentacion.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 28/09/2005, 13:12
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
Pues yo solo he utilizado Win-ASP-MySQL, así que muy probablemente no te interese mi opinión :-p, y como el fallo lo tuve por el uso de un driver MyODBC viejo y eso no aplica en linux, pues menos te ha de interesar

Solo quise participar en el post (y que quede claro que no fue por la ya extinta rivalidad)

Lo único que si podría recomentarte, por el uso de Delphi-MySQL con componentes ADO (que sería el equivalente a los RS de ASP), es que NO USES en la medida de lo posible, sus métodos o propiedades. Es decir, no uses recordcount, no uses filter, no uses nada que no sea SQL estandar y te evitaras muchos dolores de cabeza. mmmm, creo que alguna vez leí que server.execute no sirve en linux, pero eso no me lo creas hasta no probarlo.

Saludos
  #5 (permalink)  
Antiguo 28/09/2005, 13:19
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
El Conn.Execute("INSERT...") funciona a la perfección, fue una de las primeras cosas que probé ;)

A ver...

LINUX: RecordCount y GetRows=
WINDOWS: RecordCount y GetRows=

Conclusión: El mejor ambiente de desarrollo para ASP, al usar MySQL, es Linux!


Si tuviese un linux aquí con el chilisoft instalado, no tendría problemas... lo que desarrolle aquí, funcionaría en el serv. de producción.. pero tengo que desarrolar en windows... entonces... ¿cuál creen que sería la mejor alternativa para que "la cosa camine" en ambos?

Por ejemplo, para el fragmento de código anterior, uso recordcount para asegurarme que 1 y sólo 1 usuario existe.
En mi situación actual, para que funcione en ambas plataformas tendría que sí o sí seguir la recomendación de lexus, ¿no es cierto? ¿o se me escapa alguna alternativa?
__________________
...___...
  #6 (permalink)  
Antiguo 28/09/2005, 13:33
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Myakire, mi estimado, su opinión es tan importante como la de cualquiera y siempre es bienvenida!

Cita:
...es que NO USES en la medida de lo posible, sus métodos o propiedades. Es decir, no uses recordcount, no uses filter, no uses nada que no sea SQL estandar y te evitaras muchos dolores de cabeza
Sigamos con las comparativas:

- objRS.RecordCount y objRS.GetRows -> como vimos, no funciona en Win aunque si en Lin

- objRS.filter -> FUNCIONA EN AMBOS DOS SIMULTANEAMENTE!!!
Esto es un fragmento de un sistema de "poll" que migré de Access a MySQL
Código:
	rsActive.Open "enc_poll", objPollConn, 0, 3, &H0002
	rsActive.Filter = "poll_active = 'yes'"
...y como dije, anda en Win y Lin


Cita:
creo que alguna vez leí que server.execute no sirve en linux, pero eso no me lo creas hasta no probarlo
También lo había leído, pero fue una de las primeras cosas que probé

- Server.Execute() -> Funciona en Linux
- Server.Transfer() -> Funciona en Linux
- objConnection.Execute("DELETE FROM...") -> Funciona en Linux

Los caracteres "[" y "]" NO sirven en MySQL para encerrar nombres de tablas y campos.

Por ahora, esas son las cuestiones que detecté.
__________________
...___...
  #7 (permalink)  
Antiguo 28/09/2005, 13:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
y con RS.CursorLocation = 3 da el mismo resultado?
  #8 (permalink)  
Antiguo 28/09/2005, 13:44
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Entonces concluimos que en realidad la mejor plataforma para ASP es Linux? Ahora si ya lo he visto todo

Es muy posible que hayan actualizado el cochino chilisoft, antes(hace un poco mas de dos anyos creo), no existia el metodo execute
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 28/09/2005, 14:09
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Cita:
Iniciado por u_goldman
Entonces concluimos que en realidad la mejor plataforma para ASP es Linux?
WHAT???? que ven mis ojos...
  #10 (permalink)  
Antiguo 28/09/2005, 14:10
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
Iniciado por u_goldman
Entonces concluimos que en realidad la mejor plataforma para ASP es Linux? Ahora si ya lo he visto todo
Yo había dicho "ambiente de desarrollo" pero lo correcto es plataforma.
Si al postulado anterior agregamos que la base de datos es MySQL, por lo que pude ver hasta ahora, la respuesta al interrogante es, definitivamente, SI


sjam7, voy a probar con el "RS.CursorLocation = 3".. pero ¿no es lo mismo que alguno de los parámetros que usé aquí?: Rs.Open SQL, Conn,3,3 (no sé con exactitudo cuál de los dos "3"). Igual lo pruebo
__________________
...___...
  #11 (permalink)  
Antiguo 28/09/2005, 14:25
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
Iniciado por sjam7
y con RS.CursorLocation = 3 da el mismo resultado?
No, no da el mismo resultado. Ahora funciona correctamente.

Muchas gracias!
__________________
...___...
  #12 (permalink)  
Antiguo 28/09/2005, 14:35
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:
WHAT???? que ven mis ojos...
Pues en vista de los resultados de tus pruebas, solo me queda como conclusión lógica a todos nuestros paradigmas asp-linux que se debían a que solo habiamos probado-escuchado de ChiliSoft, el cual, obiamente ha diso superado por Sun Java System Active Server Pages 4.0

¿no creen?
  #13 (permalink)  
Antiguo 28/09/2005, 14:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Lo que pasa mi estimado Myak, hasta donde tengo entendido chilisoft fue comprado por Sun y despues lo rebautizaron, supongo que despues de hacerle las modificaciones pertienentes para que dejara de ser cochino , ahora ascendio de categoria y es un puerco decente
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #14 (permalink)  
Antiguo 28/09/2005, 14:57
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Cita:
Iniciado por Al Zuwaga
No, no da el mismo resultado. Ahora funciona correctamente.

Muchas gracias!
Una sola por las tantas que me has ayudado

y sobre el SUN... eso se puede instalar en un hosting compartido Linux? es un emulador no?
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #15 (permalink)  
Antiguo 30/09/2005, 10:56
Avatar de tomchat  
Fecha de Ingreso: septiembre-2005
Mensajes: 231
Antigüedad: 19 años, 7 meses
Puntos: 0
Mira este codigo

Aqui tienes este codigo a mi me sirvio de mucho y me pasaron el dato aqui es por eso que quiero ayudar asi como m ayudaron a mi.

En este se utilizan dos consultas una para cantar los registros de la tabla y otra para realizwr la cnsulta para los resultrados, bueno lo demas queda para que lo investiges

<%
'# Written by snowboardr on www.pscode.com
'# If you like this code, please comment on planet source code!
'# And vote if its worthy enough?
'# Who doesn't want those awesome .net charts?

'# Installing MySQL :: tutorial available at PSC:
'# http://www.planetsourcecode.com/vb/s...=7739&lngWId=4
'#

Dim sDatabaseConnection
sDatabaseConnection = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=localhost;"_
& "DATABASE=test;"_
& "UID=root;PWD=; OPTION=35;"

%>
<html>
<head>
<title>Paging</title>
<style type="text/css">
<!--
.sgrey {


font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #999999;
text-decoration: none;
}
.elinks {
color: #000000;
text-decoration: none;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="1">
<tr bgcolor="#999999">
<td colspan="4"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="left"><font color="#333333" size="2" face="Verdana, Arial, Helvetica, sans-serif" class="bluet"><strong>New Projects</strong></font></div>
<div align="center"></div></td>
</tr>
</table>
<div align="center"></div>
<div align="left"></div>
<div align="center"> </div></td>
</tr>

<%
'################################################# #####################################
'# COUNT RECORDS FIRST
'################################################# #####################################
Dim sQueryStatus

Dim intRecordsPerPage
Dim intPages
Dim sLimitPart 'LIMIT 0,1 -----> LIMIT {START_NUMBER,RECORDS_PERPAGE}
Dim sStartQuery
Dim sMaxStart
Dim sProjectPrev
Dim sProjectNext
intRecordsPerPage = 10 'How many records to show per page

Dim sqlProjectCount
Dim connCount, rsCount
Dim sProjectCount
sqlProjectCount = "SELECT COUNT(pid) FROM projects"
'Response.Write(sqlProjectCount)
Set connCount = Server.Createobject("ADODB.Connection")
Set rsCount = Server.CreateObject("ADODB.Recordset")
connCount.open sDatabaseConnection
Set rsCount = connCount.Execute(sqlProjectCount)
If rsCount.eof then
sProjectCount = 0
Else
sProjectCount = rsCount.Fields(0) 'number of records
End If
connCount.close
set connCount=nothing
set rsCount=nothing
'Response.Write(sProjectCount)

'################################################# #####################################
'# SIMPLE PAGING
'################################################# #####################################
sStartQuery = Request.QueryString("start")

'Get total pages
If intRecordsPerPage < sProjectCount then
intPages = sProjectCount / intRecordsPerPage
End If

'here we modify the number if it has a decimal, a better solution maybe would be to use formatnumber
Dim instrIntPages
instrIntPages = Instr(intPages,".")

'If after the decimal there is a 0 then we need to add a page
If instrIntPages > 0 then
intPages = Left(intPages,instrIntPages) + 1
End If

'Lets create the limit for the sql
'LIMIT 0,1 -----> LIMIT {START_NUMBER,RECORDS_PERPAGE}
If sStartQuery <> "" AND isNumeric(sStartQuery) then
sLimitPart = "LIMIT " & sStartQuery & "," & intRecordsPerPage
Else
sLimitPart = "LIMIT " & "0," & intRecordsPerPage
End If

'Lets figure out what the max start number is
sMaxStart = (intPages*intRecordsPerPage)-intRecordsPerPage

If sStartQuery <> "" AND isNumeric(sStartQuery) then
sStartQuery = CINT(sStartQuery)
Else
sStartQuery = 0
End If


'Now lets create our previous / next buttons and disable them if they are not needed.
If sMaxStart < 0 then sMaxStart = 0

If sStartQuery = "" or sStartQuery = "0" then 'PREVIOUS DISABLED
sProjectPrev = "<a span class='sgrey'>Previous</span>"
ElseIf sStartQuery > 0 then 'PREVIOUS ENABLED
sProjectPrev = "<a class='elinks' href='?start=" & sStartQuery - intRecordsPerPage & "'>Previous</span>"
End If

'Next
If sMaxStart = sStartQuery then 'NEXT DISABLED
sProjectNext = "<a span class='sgrey'>Next</span>"
ElseIf sStartQuery < sMaxStart then 'NEXT ENABLED
sProjectNext= "<a class='elinks' href='?start=" & sStartQuery + intRecordsPerPage & "'>Next</span>"
End If


'Now its time to select our projects
Dim connP, rsP
Dim sqlProjects

Dim sPid
Dim sSubject

sqlProjects = "SELECT "_
& "pid,"_
& "psubject "_
& " FROM projects ORDER by pid ASC " & sLimitPart


'Response.Write(sqlProjects)
Set connP = Server.Createobject("ADODB.Connection")
Set rsP = Server.CreateObject("ADODB.Recordset")
connP.open sDatabaseConnection
Set rsP = connP.Execute(sqlProjects)
If NOT rsP.eof then
Do while not rsP.eof
sPid = rsP("pid")
sSubject = rsP("psubject")
%>
<tr>
<td colspan="4" bgcolor="#FFFFFF"><font color="#003366" size="2" face="Verdana, Arial, Helvetica, sans-serif"><%=sSubject%></font></td>
</tr>
<%
rsP.movenext
loop
%>
<tr>
<td colspan="4" bgcolor="#FFFFFF" class="sgrey"><div align="right">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#999999">
<td width="29%" height="23">
<div align="left" class="greyt">Total: <%=sProjectCount%></div></td>
<td width="71%"><div align="center">
<% Dim queryPageOn
queryPageOn = Request.QueryString("page")
If NOT isNumeric(queryPageOn) AND NOT sStartQuery = "0" then
queryPageOn = "1"
End If
queryPageOn = CINT(queryPageOn)
Response.Write(sProjectPrev & "&nbsp;&nbsp;")
'# Create Page Numbers & Links
Dim iPages, iPagesTemp
For iPages=1 to intPages
iPagesTemp = iPages-1
If NOT queryPageOn=iPages then
Response.write "<a href='?start=" & iPagesTemp*intRecordsPerPage & "&page="& iPages & "' class='elinks'>" & iPages & "</a>&nbsp; "
Else
Response.write "<span class='greyt'>[</span><a href='?start=" & iPagesTemp*intRecordsPerPage & "&page="& iPages & "' class='elinks'>" & iPages & "</a><span class='greyt'>]</span>&nbsp; "
End If
Next
Response.Write("&nbsp;&nbsp;"&sProjectNext)
%>
</div></td>
</tr>
</table>
</div></td>
</tr>
<%Else%>
<tr>
<td bgcolor="#FFFFFF" class="sred"> <font color="#FF0000" face="Verdana, Arial, Helvetica, sans-serif">No projects under this category at this time. </font></td>
<td width="22%" bgcolor="#FFFFFF"><div align="center"></div></td>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
<%End IF
connP.close
set connP=nothing
set rsP=nothing
'################################################# ########################################
%>
</table>
</body>
</html>
  #16 (permalink)  
Antiguo 30/09/2005, 12:59
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
Iniciado por tomchat
Aqui tienes este codigo a mi me sirvio de mucho y me pasaron el dato aqui es por eso que quiero ayudar asi como m ayudaron a mi.
Gracias tomchat por recordarme la URL del script para paginar una consulta a MySQL que te he pasado hace unos días



__________________
...___...
  #17 (permalink)  
Antiguo 30/09/2005, 14:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
La mejor explicacion a esto es que es viernes.

Salu!
__________________
"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 12:56.