• Viernes 8 de Noviembre de 2024, 06:55

Autor Tema:  pasar codigo de v6.0 a v.net  (Leído 1568 veces)

lunnaticoo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
pasar codigo de v6.0 a v.net
« en: Viernes 3 de Octubre de 2008, 18:19 »
0
Hola..
Resulta que encontré un código en este foro en la sección v.6.0  para crear una conexión DNS por código, bueno, probé el código en v6.0 y funciona, pero al momento de implementarlo en v.net este se cae y no se cual es el error, me podrían ayudar, es urgente...

    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 Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        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

        Const ODBC_ADD_SYS_DSN As Long = 4         ' Se creará un DSN de sistema
        Const vbAPINull As Long = 0&                        ' Puntero NULL

        ' Establecemos los atributos necesarios
        sDsnName = "Ejemplo_DSN_Sistema"
        sDescription = "Nuevo DSN de sistema para SQL Server"
        sDriver = "SQL Server"

        ' Los pares de cadenas acabarán en valor Null
        sAttributes = "DSN=" & sDsnName & Nothing
        sAttributes = sAttributes & " Server=(Local)" & Chr(0)
        sAttributes = sAttributes & " Description=" & sDescription & Chr(0)
        sAttributes = sAttributes & " Database=pubs" & 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
            MsgBox("Se ha creado el DSN de sistema.")
        Else
            MsgBox("No se ha podido crear el DSN de sistema.")
        End If
    End Sub

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: pasar codigo de v6.0 a v.net
« Respuesta #1 en: Sábado 4 de Octubre de 2008, 01:54 »
0
No he mirado el código, PORQUE si un  código funciona en VB 6 debes convertirlo desde Vs 2005 como primera medida y luego hacer los cambios manuales que se requieran...

Si el código funcionó perfectamente en vb 6.0 entonces cierra el proyecto en vb 6.0 abre vs 2005-08 elige abrir proyecto, busca ESE proyecto en vb 6.0 y dale OK te dirá que si deseas importar el código desde la versión anterior  le dices que si y que muestra un resumen de lo realizado. Si el código es 100% sustituíble deberá funcionar, si no es 100% sustituíble verás que te habrá señalado en el código unas razones y un enlace que explican más profundamente la razón, has los cambios que se deducen de las razones explicadas y listo.

Adicionalmente y opcionalmente deberías cambiar  de modo manual alguna cosa que siendo coherente en la conversión de código no es pertienente ya dado unos cambios operados.

Si después de eso no funciona entonces envía aqué cófigo y ya se mirará en profundidad.
«Ma non troppo»
----> ModoVacaciones = False<----

lunnaticoo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: pasar codigo de v6.0 a v.net
« Respuesta #2 en: Lunes 6 de Octubre de 2008, 19:19 »
0
Gracias Nebire ..
 
El error estaba en las variables definidas como LONG, habia q cambiarlas a integer..

    Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Integer, ByVal fRequest As Integer, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Integer