Подключение базы данных из MS SQL Server к Lazarus
Модератор: Модераторы
Подключение базы данных из MS SQL Server к Lazarus
Помогите студенту, пожалуйста!
Задача стоит следующая - сделать простейший интерфейс для базы данных.
База данных создана, более-менее работает, но как к ней сделать интерфейс я совершенно не знаю. Установил для lazarus'а некоторые пакеты, которые рекомендуют устанавливать в статьях в и-нете (вроде бы все необходимые). У меня появились в палитре разные компоненты, связанные с подключением базы данных из разных хостов. Пробовал по разным инструкциям выполнить подключение к базе данных, но ничего не получилось. В данный момент не могу понять, чего от меня хочет свойство ConnectorType в компоненте TSQLConnector. Это свойство говорит, что оно не задано.
Извините, если изложил мысли слишком сумбурно и по-детски, просто с sql'ем познакомился две недели назад, а с lazarus'om общался только по мере выполнения задач для универа, при чём уже более полугода назад.
Мне всего-то нужно сделать скриншот главной панели интерфейса и скриншоты с выводом всех таблиц, ничего более. Но это жесть какая-то...
Умоляю, подскажите как совокупить БД с lazarus'ом! Куда нужно вводить адреса, куда названия?
В университете бесполезно задавать этот вопрос, детальных объяснений добиться не получается.
Добавлено спустя 4 минуты 2 секунды:
Lazarus установил v0.9.26 beta, SQL следующий - MS SQL Server 2008 R2
Задача стоит следующая - сделать простейший интерфейс для базы данных.
База данных создана, более-менее работает, но как к ней сделать интерфейс я совершенно не знаю. Установил для lazarus'а некоторые пакеты, которые рекомендуют устанавливать в статьях в и-нете (вроде бы все необходимые). У меня появились в палитре разные компоненты, связанные с подключением базы данных из разных хостов. Пробовал по разным инструкциям выполнить подключение к базе данных, но ничего не получилось. В данный момент не могу понять, чего от меня хочет свойство ConnectorType в компоненте TSQLConnector. Это свойство говорит, что оно не задано.
Извините, если изложил мысли слишком сумбурно и по-детски, просто с sql'ем познакомился две недели назад, а с lazarus'om общался только по мере выполнения задач для универа, при чём уже более полугода назад.
Мне всего-то нужно сделать скриншот главной панели интерфейса и скриншоты с выводом всех таблиц, ничего более. Но это жесть какая-то...
Умоляю, подскажите как совокупить БД с lazarus'ом! Куда нужно вводить адреса, куда названия?
В университете бесполезно задавать этот вопрос, детальных объяснений добиться не получается.
Добавлено спустя 4 минуты 2 секунды:
Lazarus установил v0.9.26 beta, SQL следующий - MS SQL Server 2008 R2
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Хм, ADO?
TADOConnection, бросаем на форму, выбираем свойство ConnectionString. Запускаем мастера, вводим алиас MSSQL базы, проверяем соединение.
Потом кидаем на форму TADOQuery, выбираем в Connection наш ADOConnection1, вписываем SQL в нужное свойство.
Далее размещаем всякие DBGrid и соединяем с ADOQuery
TADOConnection, бросаем на форму, выбираем свойство ConnectionString. Запускаем мастера, вводим алиас MSSQL базы, проверяем соединение.
Потом кидаем на форму TADOQuery, выбираем в Connection наш ADOConnection1, вписываем SQL в нужное свойство.
Далее размещаем всякие DBGrid и соединяем с ADOQuery
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Timid, тогда уж не ADOConnection, а ODBCConnection. ADOConnection есть только в Delphi. И TADOQuery заменить на TSQLQuery
Timid откуда в Lazarus взяться ADO?
Я бы посоветовал использовать ODBC. Можно попробовать ZeosDB, но не уверен, что он будет работать с новым MSSQL.
п.с. А вообще зря вы выбрали MS SQL т.к. придётся "потанцевать с бубном".
Добавлено спустя 35 секунд:
опередили...
Я бы посоветовал использовать ODBC. Можно попробовать ZeosDB, но не уверен, что он будет работать с новым MSSQL.
п.с. А вообще зря вы выбрали MS SQL т.к. придётся "потанцевать с бубном".
Добавлено спустя 35 секунд:
опередили...
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Про "танцы с бубном" полностью согласен... Если возможно, то лучше рассмотреть варианты типа sqlite, mysql, firebird, postresql
Добавлено спустя 2 минуты 54 секунды:
И совсем забыл... обновите fpc и lazarus до последних стабильных версий.
Добавлено спустя 2 минуты 54 секунды:
И совсем забыл... обновите fpc и lazarus до последних стабильных версий.
Padre_Mortius писал(а):Timid, тогда уж не ADOConnection, а ODBCConnection. ADOConnection есть только в Delphi. И TADOQuery заменить на TSQLQuery
Хм, да, ступил
Лекции по VBA читаю, вот и накладывается Microsoft Like...
Спасибо всем за ответы!
Я сейчас немного не за компом, поэтому в течении часа всё поковыряю, как написано.
Я пляшу уже больше недели с вещами намного более феноменальными, чем бубен, и подавляющая часть танца уже позади, ибо базу я всё-таки сделал, хотя это надо было видеть...
Выбора не имеется. Либо sql, либо access. Первое - на 4 и 5, с интерфейсом на 5, второе - на 3. Короче, как видите, последний бой - он трудный самый, сдаю сессию и отправляюсь к психотерапевту.
Добавлено спустя 13 минут 9 секунд:
Простите, что-то я очень мало понял, в итоге.
ODBCConnection я на форму кинул. Там куча свойств, которые нужно прописать, чтобы подключиться к базе. Но что в них надо вводить? DatabaseName - писать натурально название базы? HastName - директорию с exe'шником указать ему, или что? Блин, я понимаю, что я совершенно селёдка, но мне очень надо... Я на крайняк готов в paint'е свою базу врисовать в какой-нибудь шаблон. Но вот что-то ни одного шаблона не могу найти.
Что такое алиас я догадываюсь только примерно.
Добавлено спустя 1 минуту 22 секунды:
HostName* - опечаточка вышла...
Добавлено спустя 2 минуты 39 секунд:
А можно ничего не обновляя до стабильных версий всё сделать? Мне не надо, чтобы это работало. Мне нужно только на один раз, просто чтобы это выглядело как база данных и показало все мои таблицы - и всё. Я понимаю, что до построения рабочих прог в этой области мне ещё весьма далеко, поэтому я не претендую на работоспособный проект.
Я сейчас немного не за компом, поэтому в течении часа всё поковыряю, как написано.
Я пляшу уже больше недели с вещами намного более феноменальными, чем бубен, и подавляющая часть танца уже позади, ибо базу я всё-таки сделал, хотя это надо было видеть...
Выбора не имеется. Либо sql, либо access. Первое - на 4 и 5, с интерфейсом на 5, второе - на 3. Короче, как видите, последний бой - он трудный самый, сдаю сессию и отправляюсь к психотерапевту.
Добавлено спустя 13 минут 9 секунд:
Простите, что-то я очень мало понял, в итоге.
ODBCConnection я на форму кинул. Там куча свойств, которые нужно прописать, чтобы подключиться к базе. Но что в них надо вводить? DatabaseName - писать натурально название базы? HastName - директорию с exe'шником указать ему, или что? Блин, я понимаю, что я совершенно селёдка, но мне очень надо... Я на крайняк готов в paint'е свою базу врисовать в какой-нибудь шаблон. Но вот что-то ни одного шаблона не могу найти.
Что такое алиас я догадываюсь только примерно.
Добавлено спустя 1 минуту 22 секунды:
HostName* - опечаточка вышла...
Добавлено спустя 2 минуты 39 секунд:
А можно ничего не обновляя до стабильных версий всё сделать? Мне не надо, чтобы это работало. Мне нужно только на один раз, просто чтобы это выглядело как база данных и показало все мои таблицы - и всё. Я понимаю, что до построения рабочих прог в этой области мне ещё весьма далеко, поэтому я не претендую на работоспособный проект.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Если мне не изменяет память, то в поле Alias вводится имя источника данных из "Администратора ODBC". В поле HostName вводится имя сервера. Если сервер локальный, то значение будет localhost. В поле DatabaseName прописывается имя вашей базы данных.
P.S. для рабочего проекта эти данные имеет смысл вынести в файл конфигурации
P.S. для рабочего проекта эти данные имеет смысл вынести в файл конфигурации
Я нашёл адекватный мануал по своей проблеме, но там используется Delphi 7, которая, во-первых, плохо контачит с моей виндой, а во-вторых, видимо, совершенно у меня не собрана. Так вот, там соединение с базой происходит с помощью ADOConnection, свойство ConnectionString, и всё по этому поводу очень хорошо расписано. Но в ODBCConnection такого свойства нет. Вопрос - есть ли в lazarus'e какой-нибудь эквивалент ConnectionString?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Zлостный, вы куда-то не туда идете все время... вот первая ссылка вот вторая ссылка... Единственный минус этих ссылок в том, что там все написано по-английски
Я подключался. Zeos и ODBCConnection. Для проверки возможностей Lazarus. Вывел содержимое таблиц (типа select * from ) и все. Все работало.
Кесарю - кесарево решение (для винды чисто виндовое приложение), поэтому приложение было реализовано на Delphi (ADOConnection).
Кесарю - кесарево решение (для винды чисто виндовое приложение), поэтому приложение было реализовано на Delphi (ADOConnection).
TSQLConnector нужен только, если собираетесь подключаться к разным типам баз.
А Lazarus подружить с MSSQL можно только 3 известными мне способами: Zeos, TODBCConnection и Alexs делал компонент, работающий через библиотеку FreeTDS (кроссплатформенную).
А Lazarus подружить с MSSQL можно только 3 известными мне способами: Zeos, TODBCConnection и Alexs делал компонент, работающий через библиотеку FreeTDS (кроссплатформенную).
Используй 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 должно появтся содержимое вашей таблицы из базы, ну а дальше сам разберёшся.
