Estoy necesitando crear una Origen de datos DOBC con SQLConfigDataSource desde 
FoxPro.

 

El problema es que le quiero indicar cuando debe utilizar el protocolo TCP/IP o 
cuando Canalización por nombre (named Pipes)



El problema es que NO me da error, crea el origen de datos, pero queda como 
TCP/IP y no por Named Pipes cuando se lo  indico..



Hago lo siguiente

 

DECLARE INTEGER SQLConfigDataSource IN odbccp32; 

            INTEGER hwndParent,; 

            INTEGER fRequest,; 

            STRING  lpszDriver,; 

            STRING  lpszAttributes

 

 

ldsn=ALLTRIM(thisform.Pageframe1.Page1.descripcion.Value)

lUser=ALLTRIM(thisform.Pageframe1.Page2.txtuser.Value)

lPassword=ALLTRIM(thisform.Pageframe1.Page2.txtpass.Value)

lBase=ALLTRIM(thisform.Pageframe1.Page3.CmbBaseSel.Value)

lserver=ALLTRIM(thisform.Pageframe1.Page1.cmbServer.Value)

llenguaje='spanish'

lAutenWinNt=thisform.Pageframe1.Page2.chkSegWinNT.Value

lProtocolo="Network="+IIF(thisform.Pageframe1.Page3._optiongroup1.Value=1,'dbnmpntw','dbmssocn')+
 Chr(0)            

 

            #DEFINE ODBC_ADD_DSN 1

            #DEFINE ODBC_REMOVE_DSN 3

            LOCAL lcDriver ,lcAttribs

 

            *** Remueve el DSN anterior

             lcDriver = "SQL Server"

             lcAttribs = "DSN="+ALLTRIM(ldsn) + Chr(0)

             nReturnValue = SQLConfigDataSource(0, ODBC_REMOVE_DSN, lcDriver, 
lcAttribs)

 

            *** Crea el DSN 

            lcDriver = "SQL Server"

            lcAttribs = "SERVER="+ALLTRIM(lserver)+ Chr(0)

            lcAttribs = lcAttribs + "DESCRIPTION=Sistema de Forward 8" + Chr(0)

            lcAttribs = lcAttribs + "DSN="+ALLTRIM(ldsn) + Chr(0)

            IF !Empty(llenguaje)

                    lcAttribs = lcAttribs +"Language="+ALLTRIM(llenguaje)+Chr(0)

            ENDIF

            lcAttribs = lcAttribs +lProtocolo

 

            lcAttribs = lcAttribs +"DATABASE="+ALLTRIM(lBase) + Chr(0)

                    

            IF lAutenWinNt

                     lcAttribs = lcAttribs +"Trusted_Connection=Yes" + Chr(0)

            ENDIF

            nReturnValue = SQLConfigDataSource(0, ODBC_ADD_DSN, lcDriver, 
lcAttribs)

            If nReturnValue = 1

                        Messagebox("System created",64,"SUCCESS")    

            Else

            Messagebox("System creation failed",64,"ERROR")    

            ENDIF

 

Saludos

Daniel

Responder a