PostgreSQL logo

Пример разработки Framework для РСУБД PostgreSQL

Почему PostgreSQL

На момент написания данной страницы postgreSQL входила в состав Mac OS X Lion, являлась абсолютно бесплатной. Также в составе Mac OS X присутствовала СУБД MySQL, но условия распространения и использования последней должны удовлетворять лицензии GPL, к которой Apple настроена с опаской, по этому, возможно в будущих релизах Mac OS X вы ее можете не обнаружить, так же как в Lion в составе дистрибутива уже нет Java, но никто, конечно не мешает скачать и установить MySQL дополнительно. В любом случае все описанное здесь справедливо для любой другой СУБД и ее API.

 

Использование созданного postgreSQL framework

Скомпилируем в виде статической библиотеки, либо просто вставим все файлы в наш новый проект.

Чтобы иметь возможность использовать postgreSQL API, необходимо подключить библиотеку libpq.dylib к нашему проекту. Поскольку наш framework являлся статической библиотекой, добавлять libpq.dylib к нему не требовалось, надобность в его присутствии возникает только на финальной стадии сборки linker-ом.

Xcode4 добавление framework
#import "mbpostgresql.h" // Заголовочные файлы нашего framework
...
//Создадим объект соединения с БД
mbDB_PG* dbpg = [[mbDB_PG alloc] init];
dbpg.serverName = @"localhost"; // по умолчанию и так localhost, по этому эту строку можно опустить
dbpg.databaseName = @"mydatabase";
@try {
  // выполняем соединение
  [dbpg connectToDBwithUser:@"postgres" :@"12345"];
  int xxx = 21;// некая переменная
  
  //создаем запрос
  mbQueryPG* q = [[mbQueryPG alloc] initWithDatabase: dbpg];
  q.sql = [NSString stringWithFormat:@"select names,date1 from myschema.mytable where id1=%d order by names",xxx];
  [q execQuery];
  
  //работаем с результатом запроса
  NSMutableArray* arrNames = [NSMutableArray array];
  NSMutableArray* arrDates = [NSMutableArray array];
  NSInteger count1=q.recordCount;
  for(NSInteger i=0;i<count1;i++){
    [arrNames addObject:[q stringValFromRow:i Column:0]];
    [arrDates addObject:[q dateValFromRow:i Column:1]];
  }
  ...
}
@catch (mbErrorPG *exception){
	[exception alertBox]; // Выводим сообщение об ошибке
} 

См. также:

Работа с MySQL
 
 
homeЗаметили ошибкукарта сайта  EN
   Made on a Mac