| |||
Gracias por contestar. -Un asunto: Por ejemplo, en la línea Database=mibd ¿ahí se puede poner la ruta a la base de datos entre comillas simples o dobles? Otra duda: ¿Luego llamo a la función conexion() así, escribiéndola tal cual, y ya está? Y por último, en cuanto al código ASP, ¿hace falta especificar ASP JVScript u otro tipo? Última edición por un_tio; 07/02/2005 a las 20:51 |
| |||
Además no lo veo nada claro. Yo pensaba que el código sería de este estilo, no sé si me has pasado el código para otra cosa:
Código:
basedatos ="ruta" Set conexion = Server.CreateObject("ADODB.Connection") conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";" Set registros = conexion.Execute("SELECT * FROM campo") |
| |||
La verdad es que parece mentira, que algo tan básico como conectarse a la base de datos, esté publicado en tan pocos sitios. He encontrado a uno que tenía mi mismo problema después de mucho buscar. Éste es el código que he encontrado:
Código:
Dudas:<% '* database server parameters Dim serverIP '* ip adress Dim serverPORT '* ip port Dim serverDB '* catalog/database name Dim serverLOGIN '* username Dim serverPASSWORD '* password '* set your variables here serverIP = "192.168.100.1" serverPORT = "1433" '* default port is 1433/TCP serverDB = "Northwind" serverLOGIN = "login" serverPASSWORD = "pass" '* open connection Dim con Set con = Server.CreateObject("ADODB.Connection") con.ConnectionString = "Provider=SQLOLEDB.1;" & _ "Persist Security Info=False;" & _ "Network Library=DBMSSOCN;" & _ "Data Source=" & serverIP & "," & serverPORT & ";" & _ "Initial Catalog=" & serverDB & ";" & _ "User ID=" & serverLOGIN & ";" & _ "Password=" & serverPASSWORD & ";" & _ "Connect Timeout=5;Pooling=False" Call con.Open() %> -¿Qué IP poner si la base de datos está en el propio ordenador? ¿Es 127.0.0.0 (o era acabado en 1)? ¿O se pone localhost, como si fuera un número de IP? -¿Se puede no poner puerto? -¿En login y password, si es lo de windows, qué se pone si no tienes password? (de login supongo que el nombre de tu usuario de windows). -Ahí la persona que lo escribió ha puesto un signo "_" detrás de cada "&", ¿eso es correcto, significa algo, o un mero error de transcripción? -¿Cuál sería el código para cerrar la base de datos y la conexión (para Sql Server 2000, recuerdo)? Última edición por un_tio; 07/02/2005 a las 21:25 |
| ||||
Vamos haber,con lo que te he puesto te deberia hacer la conexion sin poner ni ip ni dada ya que esta en tu ordenador,y lo que esta dentro d elas comillas dobles no llebha comillas simples , y por supuesto hay otra forma de conectar con la bd aunque lo que me has puesto de Microsoft.Jet.OLEDB.4.0; es para access,. yo tengo por ejemplo otra forma pora conectar con sql server que es en la conection string="Data source =servidor;Initial catalog=mibd;User Id=usuario;password=mipass" Yo tengo mi conexion a sql server 2000 puesta como te he puesto al principio,me funciona perfectamente y la funcion conexion devuelve la conexion para cuando la kieras utilizar y cuando tienes mucho codigo es mejor organizarlo en funciones y metodos que dejaran tu codigo mas facil de entender: Ejemplo con un dataset y un enlace a una lista desplegable dim cn as System.Data.SqlClient.SqlConnection cn=conexion() cn.open() dim ds as System.data.Dataset ds=new System.data.Dataset dim adap as System.Data.SqlClient.SqldataAdapter adap=new System.Data.SqlClient.SqlDataAdapter("Select * from EMPRESAS",cn) adap.Fill(ds,"TEMPRESAS") dropdowlist1.datasource=ds.tables("TEPRESAS") ..... cn.close Otro ejemplo seria una insercion: dim cn as System.Data.SqlClient.SqlConnection cn=conexion() cn.open() DIM cmd AS System.Data.SqlClient.SqlCommand cmd = New System.Data.SqlClient.sQLCommand() cmd.CommandText = "INSERT INTO ALUMNOS VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11)" cmd.Parameters.Add("@p1", txtDni.text) cmd.Parameters.Add("@p2", txtapellidos.Text) cmd.Parameters.Add("@p3", txtnombre.Text) cmd.Parameters.Add("@p4", txtDomicilio.Text) cmd.Parameters.Add("@p5", ponernulos(txtcp.Text)) cmd.Parameters.Add("@p6", txtMunicipio.Text) cmd.Parameters.Add("@p7", ponernulos(txttelefono1.Text)) cmd.Parameters.Add("@p8", ponernulos(txttelefono2.Text)) cmd.Parameters.Add("@p9", txtemail.Text) cmd.Parameters.Add("@p10", txtfechanac.Text) cmd.Parameters.Add("@p11", txtNivel.Text) cmd.Connection = cn 'con control de errores Try N=cmd.ExecuteNonQuery() label10.visible=true label10.text="Alta realizada" Catch ex As Exception label10.visible=true Label10.Text = ex.Message & EX.ERROR End Try Esto que te pongo lo tengo yo en mi codigo,como la funcion coexion q te he pasado antes.Haber si haces una prueba y te funciona. |
| |||
He probado tu código, incluyendo el primer ejemplo de la lista desplegable, a pesar de que no es el tipo de código que busco (ahora luego te diré a qué me refiero), y me ha dado un error en la primera línea: Cita: Dice que se esperaba una instrucción... Yo no sé si es que el código que me das es para otra cosa distinta del ASP convencional.Tipo de error: Error de compilación de Microsoft VBScript (0x800A0400) Se esperaba una instrucción /sitio/TMPe8s1amnbg.asp, línea 10, columna 20 function conexion() as System.Data.SqlClient.SqlConnection -------------------^ Vamos a ver, yo lo que quiero es un código sencillito de este estilo:
Código:
¿¿Alguien puede ayudarme?? Es OBDC, así que debo poner el DSN desde el panel de control y tal, y ya lo he hecho, llamándole mibase. ¿Qué debo poner en server, lo que he llamado desde el creador de sitios OBDC como "mibase"? Dim Conex 'Creamos el objeto de conexion ahora... Set Conex = Server.CreateObject ("ADODB.Connection") Conex.Open "driver={SQL Server};server=mibase; database=./m.MDF; uid=sa;pwd=" SQL="select * from Zona" Set objRS=Conex.Execute(SQL) if not objRs.EOF then Do while not objRS.EOF response.write(objRS(0)) objRS.movenext loop end if Otra forma de hacerlo es mediante OLEBD. También me valdría, pero no sé cómo hacerlo. Por favor, cualquiera de las dos formas me valdría, OBDC u OLEBD. ¿¿¿Alguien puede indicarme qué código exacto se ha de usar??? |
| |||
Bueno la cosa ha avanzado. Tengo este código (neivan tu código extraño ni me suena ni lo he visto en ningún sitio, ¿seguro que estás hablando de ASP "normal"?):
Código:
O incluso mejores. Pongo aquí esta página que seguro que le interesará a muchos:strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1; UID=LoginID;PWD=Password;DATABASE=Database_Name set conn = server.createobject("adodb.connection") conn.open strconn http://www.gamarod.com.ar/articulos/articulos.asp?id=36 El caso es que he descubierto cómo registrar mi servidor, desde el propio programa SQL Server 2000 (no lo había hecho hasta ahora, y en ningún sitio de internet había leído que tuviese que hacerse). Ya coloco bien todo, el nombre del servidor y el nombre de la base de datos (que no el propio archivo!). Me falta muy poco ya para que funcione, y de hecho, el úinco error que me da ahora mismo es en el Login... ¡¡y pongo mi nombre de usuario de Windows!! Me da este error: Cita: ¿Qué puedo hacer? Tipo de error: Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'Usuario'. Reason: Not associated with a trusted SQL Server connection. Última edición por un_tio; 08/02/2005 a las 22:24 |
| ||||
hola tio bueno antes una cosa he visto uan conexion pero esa es para asp.net me imagino que tu quieres para asp la conexion es sencillisima = a la de vb set cn = server.CreateObject("adodb.connection") ' la var de tipo coneection set rs = server.CreateObject("adodb.recordset") ' la vra de tipo recorset cn.Open "provider=sqloledb;uid=sa;database=tubase;server=. " 'abres la conexion sql = "select * from tabla" set rs=cn.Execute(sql) ' llenas el recordset y eso es todo donde tubasees el nombr de la base de datos server=. quierd ecir que ete estas conecatndo a tu misma pc (local) ahora para accces seria: = solo cambias la conexion cn.Open "provider=Microsoft.jet.oledb.4.0;data source=c:\ruta\tubase.mdb" espero te sirva PD: el usuario por defecto del sql es sa
__________________ http://www.luisariashidalgo.com |
| |||
Ya está. Arreglado ![]() ![]() ![]() ![]() ![]() ![]() ![]() La cosa era que no sabía qué poner en los campos (¿cuál es la ruta, o el nombre, a la base de datos? ¿cuál es la ruta al server? etc.), pero ahora ya lo sé. No me iba el login, y he tenido que habilitar todo desde el sql server para poder usar login de sql (si no no te dejaba, y con el de windows no me iba). Resumiendo, no era tanto el código lo que me hacía falta (que ya había conseguido varios y sabía usarlos), SINO VER Y MODIFICAR DESDE EL PROPIO PROGRAMA SQL SERVER algunas cosas para que me pudiera funcionar. Última edición por un_tio; 09/02/2005 a las 11:05 |
| |||
Por si ayuda a alguien, éste es el código que utilizo:
Código:
Set oConn=CreateObject("ADODB.Connection") oConn.Open "Provider=SQLOLEDB; Data Source=(local); Initial Catalog=nombre_de_mi_base_de_datos; User Id=sa; Password=;" |