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

ASP. Formulario de insercion de datos

Estas en el tema de ASP. Formulario de insercion de datos en el foro de ASP Clásico en Foros del Web. Cita: Tambien lo probé con el codigo: SELECT uno.campo1, COUNT (varios.campo1) AS Cant FROM uno INNER JOIN varios ON varios.campo1 = uno.campo1 GROUP BY uno.campo1 ...

  #31 (permalink)  
Antiguo 18/12/2004, 11:23
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:
Tambien lo probé con el codigo:
SELECT uno.campo1, COUNT (varios.campo1) AS Cant
FROM uno INNER JOIN varios ON varios.campo1 = uno.campo1 GROUP BY uno.campo1
y funciona, pero cuando añado uno.campo2 ' me sale el mismo error
Intentá con:

SELECT uno.campo1, uno.campo2, COUNT (varios.campo1) AS Cant
FROM uno INNER JOIN varios ON varios.campo1 = uno.campo1 GROUP BY uno.campo1, uno.campo2
__________________
...___...
  #32 (permalink)  
Antiguo 18/12/2004, 11:45
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
No Me Lo Puedo Creer !!!!!!!!!!!!
Por Fin Problema Resuelto!!!!!!!!
Muchissimas Gracias!!!!!
__________________
Gracias
  #33 (permalink)  
Antiguo 18/12/2004, 11:56
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
ok, recordá que todos los campos llamados por el SELECT en la sentencia SQL que no sean una expresión (el count, por ejemplo) deben incluirse también dentro de la cláusula GROUP BY. Además, nunca pongas un campo tipo MEMO (y no recuerdo si hay otros) en el GROUP BY porque no se puede.

saludos
__________________
...___...
  #34 (permalink)  
Antiguo 25/12/2004, 06:39
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Gracias a todos. Funciona perfectamente pero ahora tengo un pequeño problema. Resulta que si tabla VARIOS no tiene datos sale tipico error: "El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual".
En tutoriales y en este foro hay varios modos de resolverlo, he probado con response write ... pero solo soy una torpe autodidacta y no consigo nada.
La parte del codigo donde me da error:
<%
Dim rs__MMColParam
rs__MMColParam = "1"
If (Request.QueryString("ID") <> "") Then
rs__MMColParam = Request.QueryString("ID")
End If
%>
<%
Dim rs
Dim rs_numRows

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_rs_STRING
rs.Source = "SELECT ID, IdVarios, NombreR FROM uno, varios WHERE ID = " + Replace(rs__MMColParam, "'", "''") + " AND IdVarios = ID"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()

rs_numRows = 0
%>
.....
</table>
<p align="left">&nbsp;</p>


<form method="post" action="<%=MM_editAction%>" name="form2">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">VariosR:</td>
<td>
<input type="text" name="VariosR" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right">MailR:</td>
<td>
<input type="text" name="MailR" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right">NombreR:</td>
<td>
<input type="text" name="NombreR" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td>
<input type="submit" value="Insertar registro">
</td>
</tr>
</table>
<input type="hidden" name="IdVarios" value="<%=(rs.Fields.Item("ID").Value)%>" size="32"> (en esa linea me da error)
<input type="hidden" name="MM_insert" value="form2">
</form>

...
<%
rs.Close()
Set rs = Nothing
%>
__________________
Gracias
  #35 (permalink)  
Antiguo 25/12/2004, 06:55
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Acabo de resolverlo. El codigo es:
<% If rs.EOF Then
Response.Write("<H2>No hay datos</H2>")
Else ' Hay datos. %>
<input type="hidden" name="IdVarios" value="<%=(rs.Fields.Item("ID").Value)%>" size="32">
<% End If ' end ro.EOF And rs.BOF %>
...
Pero ahora, cuando intento insertar nuevos registros en VARIOS me da otro error:
"Ha intentado asignar el valor Null a una variable que no es un tipo de datos Variant".
El codigo da error:
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute (el que da error)
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
__________________
Gracias
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 08:14.