Вопрос № 102302: Здравствуйте, уважаемые!
Надо БЫСТРО составить программку, в работе которой используется 2-3 таблички. При этом для работы с табличками не должно ничего дополнительно инсталлироваться, максимум - пара dll-к рядом с экзешником.
Сможете помочь/...Вопрос № 102322: Здравствуйте, уважаемые эксперты!
Я пишу программу, которая использует клиент-серверную архитектуру БД. В качестве сервера БД используется MS SQL Server 2000.
Для подключения к программе используется Microsoft OLE DB Provider for SQ...
Вопрос № 102.302
Здравствуйте, уважаемые!
Надо БЫСТРО составить программку, в работе которой используется 2-3 таблички. При этом для работы с табличками не должно ничего дополнительно инсталлироваться, максимум - пара dll-к рядом с экзешником.
Сможете помочь/подсказать?
Отвечает: sir henry
Здравствуйте, Кривоконь Сергей Алексеевич!
Если формат таблиц не важен, тогда Вот Вам на выбор:
1. Используются идущие в комплекте с Дельфи компоненты ADO и формат базы данных MS Access. Если на компьютере, куда Вы собираетесь ставить свою программу, уже установлен MS Office, то все необходимые DLL-ки там уже есть.
Достоинства:
- Поддержка языка SQL, который для построения отчётов из промежуточных данных (а обычно данные именно промежуточные, их потом надо просуммировать, рассчитать стандартное отклонение, минимальные-максимальные значения, суммы с группировкой и т.д. :) ).
- Приемлимая скорость работы.
- Все таблицы и индексы к ним хранятся в одном файле .mdb.
Недостатки:
- Саму базу желательно создавать в программе Access. Можно, конечно, найти допкомпоненты для создания базы, но придётся тогда кидать на компьютер всем клиентам дополнительные DLL-ки, которые будут использованы всего один раз.
- Если у Вас, например, стоит MS Office 2003, а у клиента 97 - базу придётся пересоздавать. У MS проблемы с совместимостью. :)
- В MS Access не совсем традиционный синтаксис SQL. Не сильный недостаток, но неприятный для тех, кто привык к стандарту.
2. Если изощрённые отчёты не предполагаются, то можно скачать компоненты для работы с базой формата dBase под названием TDBF (http://tdbf.sourceforge.net/).
Достоинства:
- Очень высокая скорость работы (особенно если построены правильные индексы) до тех пор, пока объём БД лежит в разумных пределах (обычно до 300..500 кБ).
- Не нужны вообще никакие дополнительные DLL.
- БД можно создать прямо на месте у клиента.
Недостатки:
- Каждая таблица и набор индексов к ней хранятся в отдельном файле. Впрочем, для Вас это непринципиально. :)
- Структура таблиц DBF открытая и очень простая. Нет абсолютно никакой защиты данных от кражи. Впрочем, если секретность желательна, то Вы можете записывать в таблицу уже зашифрованные данные.
- Нет никакой поддержки SQL. Лично для меня это большой недостаток. :)
3. В качестве альтернативы MS Access, если нужно использовать язык SQL (лично я предпочитаю работать именно с ним), можно взять SQL БД SQLite. Вот здесь (http://sourceforge.net/project/showfiles.php?group_id=35994) скачаете компоненты ZEOS для работы с SQL базами вообще и там в комплекте найдёте DLL-ку для работы с SQLite.
Преимущества:
- БД можно создать на месте у клиента.
- Высокая скорость работы (но помните про индексы :) ).
- Стандартный язык SQL.
Недостатки:
- Мало встроенных функций.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 17.09.2007, 12:29 Оценка за ответ: 5 Комментарий оценки: Очень обстоятельный ответ. Спасибо!
Отвечает: Omickron
Здравствуйте, Кривоконь Сергей Алексеевич!
Вроде, без самой БД программа работать не будет :(
Ответ отправил: Omickron (статус: 4-ый класс)
Ответ отправлен: 17.09.2007, 12:37 Оценка за ответ: 1 Комментарий оценки: Позвольте с Вами не согласиться
Отвечает: Витомский Вадим Викторович
Здравствуйте, Кривоконь Сергей Алексеевич!
Можете попробовать использовать сторонний бесплатный компонент TDBF для работы с файлами формата xDase (dBaseIII/IV/VII/Foxpro) БЕЗ ДОПОЛНИТЕЛЬНЫХ БИБЛИОТЕК - используется прямой доступ к файлам баз данных. Есть версии для Delphi 3/4/5/6/7, Lazarus, в использовании очень сильно напоминает стандартный компонент TTable из Delphi.
Я сам пользуюсь этим компонентом, написал пару простых программ с его использованием. Если будут дополнительные вопросы по использованию, пишите в личку, разберемся.
Сссылка на сайт компонента в приложении.
Приложение:
--------- Не так страшен черт, как его чертовка!
Ответ отправил: Витомский Вадим Викторович (статус: Студент)
Ответ отправлен: 17.09.2007, 13:14 Оценка за ответ: 4
Отвечает: Alexey Bednov
Здравствуйте, Кривоконь Сергей Алексеевич!
Если не важно, будут ли ьтаблички отдельными файлами или все в одном - на мой взгляд, нет ничего удобней Firebird Embedded (www.firebirdsql.org) или, что еще проще, Yaffil Embedded - но к сожалению последний достаточно устарел, хотя,я думаю, для Ваших нужд - за глаза.
Все, что нужно - это клиентская библиотека (в случае с "дятлом" - gds32.dll) и собственно - сама база. Для работы с ними все необходимое есть в дельфях - IBX, ничего дополнительно ставить не надо.
Ответ отправил: Alexey Bednov (статус: 2-ой класс)
Ответ отправлен: 17.09.2007, 13:26 Оценка за ответ: 4
Вопрос № 102.322
Здравствуйте, уважаемые эксперты!
Я пишу программу, которая использует клиент-серверную архитектуру БД. В качестве сервера БД используется MS SQL Server 2000.
Для подключения к программе используется Microsoft OLE DB Provider for SQL Server.
Проблема следующая. Если программу запускать с того компьютера, на котором установлен SQL Server, и для входа на сервер использовать „учетные сведения Windows NT „, то все в порядке. Но если таким же образом попытаться подключиться с удаленного компьютера, то возникает ошибка: „Login failed for user 'xxx'. Reason: Not associated with a trusted SQL Server connection”.
Я создавал нового пользователя в Security->Logins, но при попытке подключения как с удаленного, так и с локального сервера возникает та же ошибка.
Вопрос следующий: каким образом можно подключится к серверу БД с удаленного компьютера?
Спасибо всем, кто ответит на вопрос.
Проверь, может в закладке Security стоит
Windows Only. Если да, то измени на SQL Server and Windows.
Ответ отправил: Narsereg (статус: 1-ый класс)
Ответ отправлен: 17.09.2007, 13:41
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Олекса aka SoW!
Если Вы заводили юзера в SQL Server, то Вам нужно установить авторизацию "SQL", так для работы авторизации через "учетные записи Windows NT" необходимо, чтобы SQL Server имел доступ к общей базе юзеров (Active Directory, к примеру. Еще можно попытаться на компьютере с сервером завести пользователя Windows с таким же логином, как Вы прописали SQL Server-у)