Re: ФЯ и полиморфизм
От: Mamut Швеция http://dmitriid.com
Дата: 18.09.06 13:15
Оценка:
А>Есть приложение, которое работает с базой данных. Хочется, чтобы в зависимости от аргументов командной строки, оно конектилось либо к.. ммм.. ну пусть будет mysql, либо к oracle.

В общем, придется курить, например, erlydb

Берем erlydb.erl:
start(Driver) ->
    start(Driver, []).
        
start(mysql, Options) ->
    [Hostname, Port, Username, Password, Database, OtherOptions] =
    lists:foldl(
      fun(Key, Acc) ->
          [proplists:lookup(Key, Options) | Acc]
      end, [],
      lists:reverse([hostname, port, username, password, database,
             options])),
    erlydb_mysql:connect(Hostname, Port, Username, Password, Database,
             OtherOptions);
    
start(_Driver, _Options) ->
    {error, driver_not_supported}.


то есть этот код вызывается тривиально:
erlydb:start(mysql).

% или там
erlydb:start(mnesia). % хотя поддержка mnesia еще не добавлена
                      % но планируется
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.