Cómo conectar una aplicación hecha en VB 6.0 con una bbdd en ms sql server???
Gracias....un saludo
| ||||
| para conectar una bd de datos a SQL, para no complicarte con tanto codigo para conectarte, para probar y que entendas te recomiendo que hagas una conexion odbc, en conexion de sistema y que este odbc apunte a tu base de datos. Luego en basic creas un Data Environment que esta dando clic derecho sobre la lista de tus formularios le das agregar y luego DataEnvironment, ya estando ahi asignale un nombre corto, como DE o DE1 por ejemplo, luego de esto, creale una conexion, simplemente dando un clic derecho a DE1 y eliges agregar conexion, a la conexin tambien agregale un nombre corto como CN o CN1, a esta conexion la configuras a que apunte al odbc que creamos anteriormente. este es un ejemplo de como hacerlo editar
Código:
donde dbo_soperadoras es un procedimiento almacenado en tu base de datos.Dim l As Long
Dim t As Variant
Dim cm As ADODB.Command
Dim i As Long
On Error GoTo merror
If vacio(toperadora_id) Then
alerta "Debe definir un Id..."
toperadora_id.SetFocus
Exit Sub
End If
Call setinsercion
Call inicializar
Set cm = DE1.Commands("dbo_soperadoras")
cm.Parameters(1) = toperadora_id
cm.Parameters(2) = "" 'toperadora_nombre
cm.Parameters(3) = "" 'cuenta
cm.Execute
If cm.Parameters(0) = 0 Then
MsgBox "No existe", vbExclamation
Call resetbotton
toperadora_id.Enabled = True
toperadora_id.SetFocus
Exit Sub
End If
toperadora_nombre = cm.Parameters(2)
toperadora_cuenta_smsstudio = ALLTrim(cm.Parameters(3))
Call encender
toperadora_nombre.SetFocus
Exit Sub
abortar:
Call resetbotton
toperadora_id.SetFocus
Exit Sub
merror:
Dim er As ADODB.Error
Dim msg As String
msg = Err.Description
For Each er In DE1.Cn1.Errors
msg = msg & er.Description & ": " & er.Number & vbCr
Next er
MsgBox msg, vbExclamation
Resume abortar
PERDON, ANTES DE CONTINUAR, QUE DESEAS HACER CON LA CONEXION, ya que el codigo que te dijo Developer y mi metodo son totalmente para lo mismo, pero la conexion es un primer paso, que deseas hacer para tratar de seguir ayudando?? |
| |||
| Gracias por las repuestas. Estoy haciendo una aplicación típica de gestión, pues formularios para el mantenimiento de datos de unos trabajadores. Y siempre lo he hecho con una bbdd en access, pero ahora hay q hacerlo con una bbdd de sql server. No se puede hacer también en tiempo de diseño como lo hacía en access ?? saludos..... |
| ||||
| Eje!!! bueno yo no he manejado la forma en que lo hace xcars... por lo que veo la unica diferencia es en el codigo, ya que de igual se necesita crear un dsn que apunte a una base de SQL Server, bueno para conectarse a access yo lo hago de la misma forma, solo que al crear el dsn lo creo utilizando el driver odbc de access y no el de SQL Server. Es mas... en algunas ocasiones he tenido la misma base de datos en access y en SQL Server y puedo utilizar las dos facilmente, en el codigo que yo puse solo cambio el contenido de la variable nombredsn y asi apunto a un origen de datos diferente, independiente si este origen de datos sea de access o de SQLS |
| |||
| Para crear un dsn....en tiempo de ejecución....
Código:
el ejemplo es para MySQL. Tendrás que cambiar el control ODBC por el de SQL Server y los nombres de la base de datos, usuario, etc...'API PARA CREAR DSN DE SISTEMA
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
Private Const ODBC_ADD_SYS_DSN As Long = 4 ' Se creará un DSN de sistema
Private Const vbAPINull As Long = 0& ' Puntero NULL
Sub crearDSN()
Dim dl As Long ' Valor devuelto por la función API
Dim sAttributes As String ' Aributos
Dim sDriver As String ' Nombre del controlador
Dim sDescription As String ' Descripción del DSN
Dim sDsnName As String ' Nombre del DSN
On Error GoTo errorDSN
' Establecemos los atributos necesarios
sDsnName = "usuarios"
sDescription = "DSN de sistema para controlar los permisos de los usuarios"
sDriver = "MySQL ODBC 3.51 Driver"
' Los pares de cadenas acabarán en valor Null
sAttributes = "DSN=" & sDsnName & Chr(0)
sAttributes = sAttributes & "Server=localhost" & Chr$(0)
sAttributes = sAttributes & "User=root" & Chr$(0)
sAttributes = sAttributes & "Description=" & sDescription & Chr(0)
sAttributes = sAttributes & "Database=mysql" & Chr(0)
' Si deseamos utilizar la autenticación de Windows NT, deberemos de
' especificarlo en la cadena de atributos
sAttributes = sAttributes & "Trusted_Connection=True" & Chr(0)
' Creamos el nuevo origen de datos de usuario especificado.
' Si deseamos que aparezca el cuadro de diálogo, tendremos que
' especificar la propiedad «hWnd» del formulario donde se realiza
' la llamada a la función API.
dl = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, sDriver, sAttributes)
If dl Then
'Se ha creado bien
Else
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End If
Exit Sub
'ERROR
errorDSN:
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End Sub
salu2 pd. En tiempo de diseño también se puede, igual que con Access, pero en lugar del motor Microsoft Jet... tendrás que utilizar el de SQL Server.
__________________ Lo importante no es saber, sino tener el teléfono del que sabe :risa: Última edición por sdemingo; 30/05/2005 a las 10:19 |