Article View: chile.comp.programacion
Article #368Re: Crear DSN con c#
From: Pintamono
Date: Tue, 28 Oct 2008 14:16
Date: Tue, 28 Oct 2008 14:16
117 lines
4715 bytes
4715 bytes
Lo solucion� de la siguiente manera:
odbcconf.exe /a {CONFIGSYSDSN "SQL Server"
"DSN=MiNombreDSN|Description=MiDescripcionDSN|SERVER=MiServidor|
Trusted_Connection=Yes|Database=MiBaseDDatos"}
eso lo ejecuto en un proceso y paso por parametros las variables MiNombre,
etc..
El codigo:
private static void ConfigurarOBDC(string psTipo)
{
// psTipo solo indica cual de las dos conexiones que debo crear es la que
creare
string sMensaje="";
string sParametros ="\"SQL Server\"";
if (psTipo=="C")
{
sParametros += " \"DSN="+ ODBCConcentradorName;
sParametros += "|DESCRIPTION=" + ODBCConcentradorDesc;
sParametros += "|SERVER="+ODBCConcentradorServ;
sParametros += "|TRUSTED_CONNECTION=False";
sParametros += "|DATABASE="+BDCon;
//sParametros += "|UID="+UserCon;
//sParametros += "|PWD="+PassCon;
sMensaje = ODBCConcentradorName;
}
if (psTipo=="L")
{
sParametros += " \"DSN="+ ODBCLocalName ;
sParametros += "|DESCRIPTION=" + ODBCLocalDesc;
sParametros += "|SERVER="+MaquinaLocal+ODBCLocalServ;
sParametros += "|TRUSTED_CONNECTION=False";
sParametros += "|DATABASE="+BDLocal;
//sParametros += "|UID="+ UserLocal;
//sParametros += "|PWD=" + PassLocal;
sMensaje = ODBCLocalName;
}
sParametros += "\"}";
Process myProcess = new Process();
myProcess.StartInfo.FileName = "odbcconf.exe";
myProcess.StartInfo.Arguments = @" /a {CONFIGSYSDSN "+ sParametros;
try
{
myProcess.Start();
myProcess.WaitForExit();
Console.Write("\nConexion ODBC "+sMensaje+" creada Exitosamente\n");
}
catch (Exception ex)
{
Console.Write("\nError al crear la conexion ODBC, Error: "+ex.Message);
return;
}
finally
{
myProcess.Dispose();
}
}
Pintamono wrote:
> Que tal,
> Tengo que crear dos DSN para una aplicacion externa, el problema es que no
> he logrado hacerlo... he estado toda la ma�ana leyendo y revisando pero no
> logro nada...
> Lo hago de la siguiente manera:
> En una clase defino estas constantes
> private const string ODBC_INI_DSN_KEY_NAME = "DSN=";
> private const string ODBC_INI_FILE_PREFIX_NAME = "\0File Prefix=";
> private const string ODBC_INI_UID_NAME = "\0Uid=";
> private const string ODBC_INI_PWD_NAME = "\0pwd=";
> private const string ODBC_INI_DBQ_NAME = "\0DBQ=";
> private const string ODBC_INI_ACUODBC_DRIVER = "AcuODBC Driver"; //The
> Default Driver
> private const string ODBC_INI_READONLY = "\0Read Only=";
> private const string ODBC_INI_SERVER = "\0SERVER=";
> private const string ODBC_INI_DNS_DESC ="\0DESCRIPTION=";
> luego en un metodo le paso los parametros a utilizar
> return SQLConfigDataSource((IntPtr)0, 4, OdbcDriverName,
> ODBC_INI_DSN_KEY_NAME + DSName +
> ODBC_INI_DNS_DESC + DSNDesc +
> ODBC_INI_SERVER + DSNServ +
> ODBC_INI_UID_NAME + DBUser +
> ODBC_INI_PWD_NAME + DBPass +
> ODBC_INI_DBQ_NAME + DBName +
> ODBC_INI_READONLY + "FALSE" + "\0");
> esto siempre me devuelve false...
> al importar del API lo hago asi
> [DllImport("ODBCCP32.dll")]
> private static extern bool SQLConfigDataSource(IntPtr parent, int request,
> string driver, string attributes);
> Es indispensable que le pase un servidor, el nombre de usuario y
> contrase�a ya que estos DSN apuntaran a distintos servidores...
> Alguna idea de como hacer que funcione?
> O alguna idea de como hacer traza de esto para saber en que falla?
> Les agradecere cualquier ayuda que me permita terminar esto.
> Saludos!
> PD: tiene que ser DSN ya que la aplicacion externa esta desarrollada en 4D
> y solo se puede conectar a SQL por DSN.
Technical Details
Message-ID:
<67985ab75177588c2ab653e07cf22e53$1@usenet.no-ip.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!feeder.news-service.com!newsfeed.freenet.de!fu-berlin.de!news.nivel5.cl!not-for-mailReferences:
<95274da56ff516ad9ec126575d81067c$1@usenet.no-ip.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,7d9a80fa1aa5e602 X-Google-Attributes: gid1593cb,domainid0,public,usenet X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!feeder.news-service.com!newsfeed.freenet.de!fu-berlin.de!news.nivel5.cl!not-for-mail From: pintamono@NoMandeWeas.kk (Pintamono) Newsgroups: chile.comp.programacion Subject: Re: Crear DSN con c# Date: Tue, 28 Oct 2008 11:16:39 -0300 Organization: Usenet Chile.* http://usenet.no-ip.com Lines: 119 Message-ID: <67985ab75177588c2ab653e07cf22e53$1@usenet.no-ip.com> References: <95274da56ff516ad9ec126575d81067c$1@usenet.no-ip.com> NNTP-Posting-Host: pc-107-194-83-200.cm.vtr.net Mime-Version: 1.0 X-Trace: news.nivel5.cl 1225203403 23630 200.83.194.107 (28 Oct 2008 14:16:43 GMT) X-Complaints-To: news@news.nivel5.cl NNTP-Posting-Date: Tue, 28 Oct 2008 14:16:43 +0000 (UTC) User-Agent: NewsPortal/0.3X RCL MOD X-Abuse: robertocl@gmail.com X-HTTP-Posting-Host: 201.238.209.35