Há algum tempo, durante o processo do projeto, encontramos problemas relacionados às fontes de dados quando precisávamos carregar dados dinamicamente de diferentes bancos de dados. É claro, tabelas DBF que não podem ser conectadas ao ADOQUERY (antes do download da versão do patch, descobrimos mais tarde que elas). também pode ser conectado) deve ser construído com ODBC Para realizar o processamento da conexão, o ODBC deve ser estabelecido dinamicamente para eliminar a possibilidade de usuários excluirem o ODBC Abaixo anotarei o protótipo da função API e as instruções para criar tabelas SQLSERVER e DBF para compartilhar. (é claro que o SQLSERVER não precisa ser criado no estado ADO).
SQLConfigDataSource(hwndParent: Inteiro; fRequest: Inteiro;lpszDriverString: String; lpszAttributes: String): Inteiro;
Use no estado de chamada:
função SQLConfigDataSource (hwndParent: Inteiro; fRequest: Inteiro; lpszDriverString: String; lpszAttributes: String): Inteiro; stdcall; externo 'ODBCCP32.DLL';
Estabeleça SQLSERVER ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Servidor=(local)'+ chr(0) +'Banco de dados=mestre'+ chr(0) +'Descrição=DragonPC Fonte SQLServer ODBC'+ chr(0));
{DSN: nome da fonte de dados ODBC.
Servidor: O nome do seu servidor de banco de dados Use (local) para se referir ao banco de dados instalado em seu computador local. Observação: o SQL Server 2000 mais recente oferece suporte a um computador que executa vários serviços do SQL Server. Neste momento, você precisa especificar o InstanceName do SqlSever.
Endereço: Especifique o endereço IP da rede do servidor SQL Server.
Banco de dados: especifique o nome do banco de dados padrão.
Idioma: Especifique o idioma padrão.
Descrição: Informações de comentários. }
Crie a tabela DBF ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPRo Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Descrição=descrição da conexão' + CHR (0) + 'Exclusivo=Não' + CHR(0) +sourcedbstr + CHR(0) +'TipoFonte=DBF');
Todo o resto é igual, exceto que demorou muito para criar e depurar a tabela DBF. Espero que você não perca tempo anotando-a.
Nota: O conteúdo acima é apenas para referência de iniciantes que enfrentam problemas semelhantes.