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

error al insertar registro

Estas en el tema de error al insertar registro en el foro de ASP Clásico en Foros del Web. Espero me puedan ayudar... tengo una pagina donde se inersatn registros de productos... mi base de datos esta en SQL y todo esta programado en ...
  #1 (permalink)  
Antiguo 14/01/2005, 12:09
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta error al insertar registro

Espero me puedan ayudar...

tengo una pagina donde se inersatn registros de productos...

mi base de datos esta en SQL y todo esta programado en ASP por eso esta en este foro...

Los datos son ej:

Orden
Cliente
NombreComercial
Producto

mi problema o lo que no se hacer es que cuando esten capturando y le den ingresar vaya primero a la base de datos y compruebe que por ejemplo la orden no exista...

si existe que les indique que esa orden ya esta dada de alta, sino esta pues ya que los deje ingresar...

Actualmente lo tengo que ingrese y no valida si ya existe la orden y se duplican los registros..

alguien me puede ayudar???
  #2 (permalink)  
Antiguo 14/01/2005, 12:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Antes del Insert búscalos con simple SELECT Orden WHERE Orden = TuRequestOrden, si la búsqueda te regresa algo, pues indícaselo al usuario, de lo contrario, insértalo.
  #3 (permalink)  
Antiguo 14/01/2005, 12:27
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 6 meses
Puntos: 0
no se..

no se como incluir eso.. apenas voy aprendiendo ASP y no se mucho..

me podrias ayudar con mi codigo? claro si no es mucha molestia..

Código:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/omarweb.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form2") Then

  MM_editConnection = MM_omarweb_STRING
  MM_editTable = "dbo.omarweb"
  MM_editRedirectUrl = "act.asp"
  MM_fieldsStr  = "orden|value|cliente|value|nomcom|value|producto|value|producto2|value|fecha_n_entrega2|value|fechaprogn|value|instrucciones|value|material|value|agente|value|agente_apoyo|value|directorio|value|num_tecnico|value|comentarios|value"
  MM_columnsStr = "orden|none,none,NULL|cliente|none,none,NULL|nomcom|',none,''|producto|',none,''|producto2|',none,''|fecha_n_entrega|',none,NULL|fechaprogn|',none,NULL|instrucciones|',none,''|material|',none,''|agente|none,none,NULL|agente_apoyo|',none,''|directorio|',none,''|num_tecnico|none,none,NULL|comentarios|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
  
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** 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
    MM_editCmd.ActiveConnection.Close

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

End If
%>
El formulario creo no es necesario ponerlo o si??
  #4 (permalink)  
Antiguo 14/01/2005, 19:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 6 meses
Puntos: 0
no puedo..

trate de buscar una solucion y encontre en www.desarrolloweb.com la parte de insertar datos (lo que usaron para el buscador)

lo trate de modificar porque trabajo con dreamweaver y quedo algo asi:

<%@ Language="VBScript" %>
<!--#include file="Connections/omarweb.asp" -->
<html>
<head>
<title>Ingreso de Datos</title>
</head>
'comienza el script
<%
'definimos la variable de conexion
Dim Tabla
Set Tabla = Server.CreateObject("ADODB.Recordset")
'aqui no pongo la conexion porque la tengo ya en otro lado...
Tabla.ActiveConnection = MM_omarweb_STRING

'definimos la variable de carga de datos
Dim Temp
'buscamos los datos
'aqui solo busque el primer dato que es el unico que me interesa ver si ya existe o no, hice esto bien? o necesito poner todos los campos??
Temp="Select * From dbo.omarweb Where UCase(orden) = '" & UCase(Request("orden")) &"'"

Tabla.Open Temp
'si no se repiten agregamos los datos a nuestro buscador
If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
Tabla("orden") = Request("orden")
Tabla("cliente") = Request("cliente")
Tabla("nomcom") = Request("nomcom")
Tabla("producto") = Request("producto")
Tabla("producto2") = Request("producto2")
Tabla("fecha_n_entrega") = Request("fecha_n_entrega")
Tabla("instrucciones") = Request("instrucciones")
Tabla("material") = Request("material")
Tabla("agente") = Request("agente")
Tabla("agente_apoyo") = Request("agente_apoyo")
Tabla("directorio") = Request("directorio")
Tabla("num_tecnico") = Request("num_tecnico")
Tabla("comentarios") = Request("comentarios")
Tabla.Update
'fin del Script
%>

<font face="Tahoma" size="2"><b><i>Ingreso de datos completado</i></b></font></p>
<%
'si el campo ya existe para no hacer dobles nos da este mensaje
Else
Response.Write "El registro ya existe"
End If
'cerramos la conexion
Tabla.Close

%>
<p align="center"><font face="Tahoma" size="2"><b><i>Buscador Web 2002</i></b></font></p>

<p align="center"><font face="Tahoma" size="2"><b><i><a href="ingresos/ingreso.asp" target="_top">Ingresar
Nuevo</a></i></b></font></p>
</body>
</html>



pero nada.. cuando cargo los datos y le doy enviar... me marca :

No se puede mostrar la página
Hay un problema con la página solicitada y no puede ser mostrada..

--------------------------------------------------------------------------------

HTTP 500 - Error interno del servidor
Internet Explorer


AYUDA POR FAVOR::::
  #5 (permalink)  
Antiguo 14/01/2005, 21:40
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
porlo que veo hiciste las conexiones con dreamweaver, como puedes ver es mas la basura que pone ese editor que lo qeu se puede entender... ese problema se puede solucionar un poco mejor con menos codigo,.. dreamweaver colocar demasiadas cosas que al final terminan siendo muchas lineas de codigo para solucionar un pequeño problema.. bueno al parecer no aporto mucho con este mensaje solo era una opinion ..jeje
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 15/01/2005, 11:35
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 6 meses
Puntos: 0
lo sep///

si lo sabia que dreamweaver crea mucha basura, pero el segundo codigo ya fue un poco modificado.. y bueno espero me pueda alguien ayudar...
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 22:15.