Fonte de dados ODBC

Delphi

10/01/2011

Bom Dia

Estou precisando de uma ajudinha de vcs , terminei meu sistema agora pela manhã depois de passar a madruga inteira acoradado, enfim estou fazendo uma tela de conexção Fonte de dados ODBC - firebird -

procedure CreateODBCDataSource(
  const DataSourceName, CharacterSet, Client, Dbname, Dialect, Driver, JdbcDriver, Password, User,  DBType: string);

const
  Key1 = 'HKCU\Software\ODBC\ODBC.INI\';
  Key2 = 'HKCU\Software\ODBC\ODBC.INI\ODBC Data Sources\';
var
  Shell: OleVariant;
begin
  Shell := CreateOleObject('WScript.Shell');
  try
    Shell.RegWrite(Key1 + DataSourceName + '\CharacterSet', CharacterSet);
    Shell.RegWrite(Key1 + DataSourceName + '\Client', Client);
    Shell.RegWrite(Key1 + DataSourceName + '\Dbname', Dbname);
    Shell.RegWrite(Key1 + DataSourceName + '\Dialect', Dialect);
    Shell.RegWrite(Key1 + DataSourceName + '\Driver', Driver);
    Shell.RegWrite(Key1 + DataSourceName + '\JdbcDriver', JdbcDriver);
    Shell.RegWrite(Key1 + DataSourceName + '\Password', Password);
    Shell.RegWrite(Key1 + DataSourceName + '\User', User);

    Shell.RegWrite(Key2 + DataSourceName, DBType);
  finally
    Shell := Null;
  end;
end;


para chamar estou fazendo assim

begin
  CoInitialize(nil);
  try
    CreateODBCDataSource(
    'WIN1252',                                                                                        // CharacterSet
    'C:\WINDOWS\system32\FBCLIENT.DLL',                                          //Client
    ':D\bd\banco de dados\DADOS.FDB',                                               //Dbname
    '3',                                                                                                    //Dialect
    'C:\WINDOWS\system32\OdbcFb.dll',                                               //Driver
    'IscDbc',                                                                                            // JdbcDriver
    'masterkey',
    'SYSDBA');                                                                                             // User
  finally
    CoUninitialize;
  end;
end;


só que está dando erro na linha 'SYSDBA'); - E2035 Not enough actual parameters - alguem poderia me dar uma força.

Obrigado

  
Frost

Frost

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

10/01/2011

tente modificar esta linha:

':D\bd\banco de dados\DADOS.FDB',

para
 D:\bd\banco de dados\DADOS.FDB
GOSTEI 0
Frost

Frost

10/01/2011

Bom dia
Leonardo


Pior que não é essa linha , depois que postei e fiz a correção nessa linha e nada
GOSTEI 0
Wilson Junior

Wilson Junior

10/01/2011

Olhe a sequencia dos parâmetros da sua rotina CreateODBCDataSource e olhe a sequencia que vc está passando os campos.

Espero ter colaborado.
GOSTEI 0
Frost

Frost

10/01/2011

Bom Dia
Wilson / Leonardo

Realmente não prestei a atenção na sequencia,

Obrigado pela dica.

Corrigido agora sim funcionou certinho
  CoInitialize(nil);
  try
    CreateODBCDataSource(
    'Dados',                                                 // DataSourceName
    'WIN1252',                                             // CharacterSet
    'C:\WINDOWS\system32\FBCLIENT.DLL',     // Client
    'D:\bd\banco de dados\DADOS.FDB',         // Dbname
    '3',                                                     //  Dialect
    'C:\WINDOWS\system32\OdbcFb.dll',        // Driver
    'IscDbc',                                             // JdbcDriver
    'masterkey',                                        // Password
    'SYSDBA',                                           // User
    'Firebird/InterBase(r)');                         // DBType
  finally
    CoUninitialize;
  end;

GOSTEI 0
POSTAR