Подключение базы данных из MS SQL Server к Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Подключение базы данных из MS SQL Server к Lazarus

Сообщение Zлостный » 28.05.2011 21:39:51

Помогите студенту, пожалуйста!

Задача стоит следующая - сделать простейший интерфейс для базы данных.
База данных создана, более-менее работает, но как к ней сделать интерфейс я совершенно не знаю. Установил для lazarus'а некоторые пакеты, которые рекомендуют устанавливать в статьях в и-нете (вроде бы все необходимые). У меня появились в палитре разные компоненты, связанные с подключением базы данных из разных хостов. Пробовал по разным инструкциям выполнить подключение к базе данных, но ничего не получилось. В данный момент не могу понять, чего от меня хочет свойство ConnectorType в компоненте TSQLConnector. Это свойство говорит, что оно не задано.

Извините, если изложил мысли слишком сумбурно и по-детски, просто с sql'ем познакомился две недели назад, а с lazarus'om общался только по мере выполнения задач для универа, при чём уже более полугода назад.

Мне всего-то нужно сделать скриншот главной панели интерфейса и скриншоты с выводом всех таблиц, ничего более. Но это жесть какая-то...
Умоляю, подскажите как совокупить БД с lazarus'ом! Куда нужно вводить адреса, куда названия?

В университете бесполезно задавать этот вопрос, детальных объяснений добиться не получается.

Добавлено спустя 4 минуты 2 секунды:
Lazarus установил v0.9.26 beta, SQL следующий - MS SQL Server 2008 R2
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Zлостный
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.05.2011 21:14:20

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Timid » 28.05.2011 22:57:00

Хм, ADO?
TADOConnection, бросаем на форму, выбираем свойство ConnectionString. Запускаем мастера, вводим алиас MSSQL базы, проверяем соединение.
Потом кидаем на форму TADOQuery, выбираем в Connection наш ADOConnection1, вписываем SQL в нужное свойство.
Далее размещаем всякие DBGrid и соединяем с ADOQuery
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Padre_Mortius » 28.05.2011 23:06:09

Timid, тогда уж не ADOConnection, а ODBCConnection. ADOConnection есть только в Delphi. И TADOQuery заменить на TSQLQuery
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Mr.Smart » 28.05.2011 23:07:12

Timid откуда в Lazarus взяться ADO?

Я бы посоветовал использовать ODBC. Можно попробовать ZeosDB, но не уверен, что он будет работать с новым MSSQL.

п.с. А вообще зря вы выбрали MS SQL т.к. придётся "потанцевать с бубном".

Добавлено спустя 35 секунд:
опередили...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Padre_Mortius » 28.05.2011 23:18:16

Про "танцы с бубном" полностью согласен... Если возможно, то лучше рассмотреть варианты типа sqlite, mysql, firebird, postresql

Добавлено спустя 2 минуты 54 секунды:
И совсем забыл... обновите fpc и lazarus до последних стабильных версий.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Timid » 28.05.2011 23:22:03

Padre_Mortius писал(а):Timid, тогда уж не ADOConnection, а ODBCConnection. ADOConnection есть только в Delphi. И TADOQuery заменить на TSQLQuery


Хм, да, ступил

Лекции по VBA читаю, вот и накладывается Microsoft Like...
Timid
постоялец
 
Сообщения: 290
Зарегистрирован: 21.11.2007 21:33:15

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Zлостный » 28.05.2011 23:53:34

Спасибо всем за ответы!
Я сейчас немного не за компом, поэтому в течении часа всё поковыряю, как написано.

Я пляшу уже больше недели с вещами намного более феноменальными, чем бубен, и подавляющая часть танца уже позади, ибо базу я всё-таки сделал, хотя это надо было видеть... :D

Выбора не имеется. Либо sql, либо access. Первое - на 4 и 5, с интерфейсом на 5, второе - на 3. Короче, как видите, последний бой - он трудный самый, сдаю сессию и отправляюсь к психотерапевту.

Добавлено спустя 13 минут 9 секунд:
Простите, что-то я очень мало понял, в итоге.
ODBCConnection я на форму кинул. Там куча свойств, которые нужно прописать, чтобы подключиться к базе. Но что в них надо вводить? DatabaseName - писать натурально название базы? HastName - директорию с exe'шником указать ему, или что? Блин, я понимаю, что я совершенно селёдка, но мне очень надо... Я на крайняк готов в paint'е свою базу врисовать в какой-нибудь шаблон. Но вот что-то ни одного шаблона не могу найти.

Что такое алиас я догадываюсь только примерно.

Добавлено спустя 1 минуту 22 секунды:
HostName* - опечаточка вышла...

Добавлено спустя 2 минуты 39 секунд:
А можно ничего не обновляя до стабильных версий всё сделать? Мне не надо, чтобы это работало. Мне нужно только на один раз, просто чтобы это выглядело как база данных и показало все мои таблицы - и всё. Я понимаю, что до построения рабочих прог в этой области мне ещё весьма далеко, поэтому я не претендую на работоспособный проект.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Zлостный
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.05.2011 21:14:20

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Padre_Mortius » 29.05.2011 00:14:34

Если мне не изменяет память, то в поле Alias вводится имя источника данных из "Администратора ODBC". В поле HostName вводится имя сервера. Если сервер локальный, то значение будет localhost. В поле DatabaseName прописывается имя вашей базы данных.

P.S. для рабочего проекта эти данные имеет смысл вынести в файл конфигурации
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Zлостный » 29.05.2011 18:10:22

Я нашёл адекватный мануал по своей проблеме, но там используется Delphi 7, которая, во-первых, плохо контачит с моей виндой, а во-вторых, видимо, совершенно у меня не собрана. Так вот, там соединение с базой происходит с помощью ADOConnection, свойство ConnectionString, и всё по этому поводу очень хорошо расписано. Но в ODBCConnection такого свойства нет. Вопрос - есть ли в lazarus'e какой-нибудь эквивалент ConnectionString?
Zлостный
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.05.2011 21:14:20

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Padre_Mortius » 29.05.2011 18:21:36

Zлостный, вы куда-то не туда идете все время... вот первая ссылка вот вторая ссылка... Единственный минус этих ссылок в том, что там все написано по-английски
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение GrayEddy » 29.05.2011 19:32:08

Я подключался. Zeos и ODBCConnection. Для проверки возможностей Lazarus. Вывел содержимое таблиц (типа select * from ) и все. Все работало.
Кесарю - кесарево решение (для винды чисто виндовое приложение), поэтому приложение было реализовано на Delphi (ADOConnection).
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение v-t-l » 29.05.2011 21:52:36

TSQLConnector нужен только, если собираетесь подключаться к разным типам баз.
А Lazarus подружить с MSSQL можно только 3 известными мне способами: Zeos, TODBCConnection и Alexs делал компонент, работающий через библиотеку FreeTDS (кроссплатформенную).
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение alexs » 30.05.2011 08:03:12

v-t-l писал(а):Alexs делал компонент, работающий через библиотеку FreeTDS (кроссплатформенную).

СРазу говорю - оно очень сырое
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Подключение базы данных из MS SQL Server к Lazarus

Сообщение Kitayets » 30.05.2011 14:51:05

Используй ODBC - и всё будет OK.

для этого:
  • создай DSN - в "панель управления" -> "администрирование" ->"источники данных ODBC". На вкладке "пользовательские DSN" нажми "создать", укажи соответствующий драйвер, определи ИМЯ DNS (запомни его, оно пригодится в программе) и другие параметры.
  • в приложении положи на форму (или на data module) компоненты: todbcconnection, tsqlquerry, tsqltransaction, tdatasource и какой нибудь компонент для отображения данных, например TDBGrid.
  • в свойствах odbcconnection - найди DatabaseName и укажи там имя DNS.
  • в свойствах sqlquerry укажи в свойствах Database и Transaction экземпляры классов todbcconnection и tsqltransaction соответственно. В свойстве SQL укажи sql запрос, например select * from <таблица в твоей базе>.
  • в свойствах datasource укажи dataset 'экземпляр класса tsqlquerry
  • в свойствах DBGrid DataSource - укажи экземпляр класса tdatasource
  • укажи в свойствах odbcconnection connected в True, sqltransaction active в true, sqlquerry active в true, после этого в grid'e должно появтся содержимое вашей таблицы из базы, ну а дальше сам разберёшся.
Kitayets
постоялец
 
Сообщения: 171
Зарегистрирован: 05.05.2010 21:15:24


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

Рейтинг@Mail.ru