Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2008, 09:58   #1
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
Плохо Псевдоним

Всем привет!!!
Большая просьба, подскажите как програмно создавать алиасы!
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Старый 09.01.2008, 12:20   #2
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Код:
procedure TForm1.FormShow(Sender: TObject);
var
str:TStrings;
begin
Str:=TStringList.Create;
Session1.GetAliasNames(Str);
ListBox1.Items.Assign(Str);
Str.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
str:TStrings;
begin
Session1.AddStandardAlias('VROnline','c:\','Paradox');
Str:=TStringList.Create;
Session1.GetAliasNames(Str);
ListBox1.Items.Assign(Str);
Str.Free;
end;
Сам такого не делал, но если, что не ясно, прочитайте хотябы 16 главу книги "Библия программиста", а если у Вас ее нет, то скачайте с этого же форума.
П.С.: думал, что уже Всех накормил этой книгой
фЁдОр вне форума Ответить с цитированием
Старый 09.01.2008, 14:52   #3
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
По умолчанию

Большое спасибо
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Старый 10.01.2008, 21:42   #4
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

А вот как для MSSQL:
Код:
uses
  Windows, Registry;

function AddDSNMSSQLSource(const ADSNName, AServer, ADataBase: string;
  ADescription: string = ''): Boolean;
function SQLConfigDataSource(
  hwndParent: HWND; // Указатель на окно вызвавшее функцию
  fRequest: WORD; // Тип запроса
  lpszDriver: PChar; // Пользовательское имя драйвера
  lpszAttributes: PChar // атрибуты
  ): Boolean; stdcall; external 'odbccp32.dll' name 'SQLConfigDataSource';

const
  ODBC_ADD_DSN = 1; // Add data source
  ODBC_CONFIG_DSN = 2; // Configure (edit) data source
  ODBC_REMOVE_DSN = 3; // Remove data source

implementation

{******************************************************************************
 * AddDSNMSSQLSource - добавляет (модифицирует) пользовательский DSN-источник
 * для доступа к MS SQL серверу
 * Дополнительно в клиентских настройках прописывается
 * протокол TCP/IP и порт 1433
 *
 * Вход: ADSNName - имя DSN-источника
 * AServer - имя сервера
 * ADataBase - наименование БД на сервере по умолчанию
 * ADescription - описание источника (необязательный параметр)
 *
 * Выход: TRUE - в случае успеха, FALSE - в противном случае
 ******************************************************************************}

function AddDSNMSSQLSource(const ADSNName, AServer, ADataBase: string;
  ADescription: string = ''): Boolean;
const
  driver = 'SQL Server';
var
  params: string;

  // эта ф-ция прописывает необходимые настройки для доступа к MS SQL по TCP/IP
  // и на порт 1433
  function SetNetLibParam: Boolean;
  begin
    Result := FALSE;
    with TRegistry.Create do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      if OpenKey('\Software\Microsoft\MSSQLServer\Client', TRUE) then
        if not KeyExists('ConnectTo') then
          CreateKey('ConnectTo');
      if OpenKey('ConnectTo', TRUE) then
      begin
        WriteString(AServer, 'DBMSSOCN,' + AServer + ',1433');
        Result := TRUE;
      end;
    finally
      CloseKey;
      Free;
    end;
  end;

begin
  params := 'DSN=' + ADSNName + #0'Server=' + AServer + #0'DataBase= ' +
    ADataBase + #0'Description=' + ADescription + #0#0;
Result := SQLConfigDataSource(0, ODBC_ADD_DSN, PChar(driver), PChar(params));
  Result := Result and SetNetLibParam;
end;

end.
Вот Вам Ссылки на источники:
http://www.rsdn.ru/qna/default.asp?db/datasrc.xml
http://www.bbd.net.ru/modules.php?op...article&sid=16
http://www.firststeps.ru/mfc/odbc/r.php?14



А вот создание алиас для Access:



Код:
const
  ODBC_ADD_DSN = 1;        // Добавляем источник данных
  ODBC_CONFIG_DSN = 2;     // Конфигурируем (редактируем) источник данных
  ODBC_REMOVE_DSN = 3;     // Удаляем источник данных
  ODBC_ADD_SYS_DSN = 4;    // Добавляем системный DSN
  ODBC_CONFIG_SYS_DSN = 5; // Конфигурируем системный DSN
  ODBC_REMOVE_SYS_DSN = 6; // удаляем системный DSN

type
  TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD;
  lpszDriver: LPCSTR; lpszAttributes: LPCSTR ) : BOOL; stdcall;

procedure Form1.FormCreate(Sender: TObject);
var
  pFn: TSQLConfigDataSource;
  hLib: LongWord;
  strDriver: string;
  strHome: string;
  strAttr: string;
  strFile: string;
  fResult: BOOL;
  ModName: array[0..MAX_PATH] of Char;
  srInfo : TSearchRec;
begin
  Windows.GetModuleFileName( HInstance, ModName, SizeOf(ModName) );
  strHome := ModName;
  while ( strHome[length(strHome)] <> '\' ) do
    Delete( strHome, length(strHome), 1 );
  // Тестовая база данных (Axes = Access)
  strFile := strHome + 'TestData.MDB';
  // загружаем библиотеку (путь по умолчанию)
  hLib := LoadLibrary( 'ODBCCP32' );
  if( hLib <> NULL ) then
  begin
    @pFn := GetProcAddress( hLib, 'SQLConfigDataSource' );
    if( @pFn <> nil ) then
    begin
      // начинаем создание DSN
      strDriver := 'Microsoft Access Driver (*.mdb)';
      strAttr := Format( 'DSN=TestDSN' + #0 + 'DBQ=%s' + #0 +
      'Exclusive=1' + #0 + 'Description=Test Data' + #0 + #0, [strFile] );
      fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
      if( fResult = false ) then
        ShowMessage( 'Ошибка создания DSN (Datasource) !' );

      // test/create MDB file associated with DSN
      if( FindFirst( strFile, 0, srInfo ) <> 0 ) then
      begin
        strDriver := 'Microsoft Access Driver (*.mdb)';
        strAttr := Format( 'DSN=TestDSN'+#0+ 'DBQ=%s'+#0+ 'Exclusive=1'+#0+
        'Description=Test Data'+#0+ 'CREATE_DB="%s"'#0+#0, [strFile,strFile] );
        fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
        if( fResult = false ) then
          ShowMessage( 'Ошибка создания MDB (файла базы данных) !' );
      end;
      FindClose( srInfo );
    end;
    FreeLibrary( hLib );
  end
  else
    ShowMessage( 'Невозможно загрузить ODBCCP32.DLL' );
end;


Могу еще и для Excel скинуть
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp

Последний раз редактировалось Alex21; 11.01.2008 в 12:06. Причина: Для оформления кода используйте кнопку #CODE
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алиас (псевдоним) для бд FOXPRO IGREK БД в Delphi 0 01.07.2008 00:58