Проблема: Нужно написать небольшую программку для работы с базой данных MySQL, поскольку пишу в большей мере на Delphi 2010 — нашел подходящие бесплатные компоненты: ZeosLib. Оказалось что Delphi 2010 поддерживает только сборка ZEOSDBO-7.0.0-alpha(информация проверена в 2012 г.). Конечно альфа версия очень смущала, но все же начал устанавливать. И так решим главный вопрос как установить компоненты ZEOS.
Инструментарий: Delphi 2010, Компоненты ZEOSDBO — 7.0.0 — alpha
Решение:
- Скачал архив ZeosLib с официального сайта или с sourceforge.net, который содержит все необходимое, начиная примерами, заканчивая компонентами (кстати в архиве имеется большое количество сборок, которые предназначены для разных версий продуктов: Delphi 7 — Delphi XE4 (информация от 14.10.2013 г.); CBuilder…Kylix3… Lazarus).
- Разархивируйте в отдельную папку содержимое скачанного архива. ([Диск]:\Program Files\Embarcadero\RAD Studio\7.0\Components\Zeos7).
- Запускаем RadSudio Delphi 2010/2009.
- В главном меню выбираем File→Open Project… (Ctrl+F11), переходим в папку, куда разархивировали компоненты, …\Components\packages\delphi14\ — для Delphi 2010 (для предыдущих версий Delphi будет другая папка) и выбираем файл ZeosDbo.groupproj. Откроется проект со всеми необходимыми пакетами.
- Откройте меню Project →Build All Project
- Дальше добавим пути для дальнейшей корректной работы, открываем пункт меню Tools →Options → Evironment Options→ Delphi Options→Library →Win 32 (Для Delphi 7 другие пункты меню Tools → Evironment Options → Library) и напротив пункта Library Path: нажимаем из тремя точками , появится окно в котором нужно выбрать путь к папке Build — ( …\Components\packages\delphi14\build) она находится в папке с проектом, который мы открывали в пункте 4. После выбора нужно нажать кнопку ADD для добавления пути.
- Сверните Delphi, скопируем все файлы с расширением *.bpl с папки build в папку которая назначена по умолчанию для BPL (где она находится можно посмотреть пройду п 6. только вместо Library Path нам нужен Package output directory)
- Переходим в Delphi и открываем Project Manager (Ctrl+Alt+F11). В этом окне нам нужно теперь скомпилировать все подпроекты в следующем порядке:
— ZCore140.bpl
— ZPlain140.bpl
— ZParseSql140.bpl
— ZDbc140.bpl
— ZComponent140.bpl
— ZComponentDesign140.bpl
*140 — версия компилятора. В вашем случае может быть другая
- Теперь можно проводить установку, для этого необходимо нажать правой кнопкой мыши на названии ZComponentDesign140 в списке и выбрать пункт Install. После чего появится окно, в котором сказано какие компоненты установлены.
- Всё, закрываем все проекты с сохранением(File→Close All)
PS: Все готово, теперь можно создавать новый проект для работы с базами данных MySQL, Ms SQL Server, FireBird и много других . В палитре компонентов добавится новый раздел Zeos Access с помощью которого можно проводить подключение к БД.
Библиотеки для подключения к различным базам данных лежат тут
Для Win7 x64 копируем необходимые dll-ки в папку C:\Windows\SysWOW64, иначе будет возникать ошибка None of the libraries can be found: libmysql51.dll, libmysql50.dll, libmysql.dll
Александр, у меня при компиляции возникают ошибки
Checking project dependencies…
Compiling ZCore.dproj (Debug, Win32)
dcc command line for «ZCore.dpk»
c:\program files (x86)\embarcadero\studio\16.0\bin\dcc32.exe -$O- -$W+ —no-config -M -Q -Z -TX.bpl
-AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;
DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG -I»c:\program files (x86)\embarcadero\studio\16.0\lib\Win32\release»;
…
[dcc32 Error] ZSysUtils.pas(572): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(576): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(638): E2003 Undeclared identifier: ‘DecimalSeparator’
[dcc32 Error] ZSysUtils.pas(639): E2003 Undeclared identifier: ‘ThousandSeparator’
[dcc32 Error] ZSysUtils.pas(642): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(661): E2003 Undeclared identifier: ‘DecimalSeparator’
[dcc32 Error] ZSysUtils.pas(751): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(869): E2003 Undeclared identifier: ‘DecimalSeparator’
[dcc32 Error] ZSysUtils.pas(1256): E2010 Incompatible types: ‘PPointerList’ and ‘TPointerList’
[dcc32 Error] ZSysUtils.pas(1276): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(1278): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(1291): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(1299): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(1335): E2251 Ambiguous overloaded call to ‘CharInSet’
System.SysUtils.pas(5878): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
ZCompatibility.pas(1): Related method: function CharInSet(Char; const TSysCharSet): Boolean;
[dcc32 Error] ZSysUtils.pas(1464): E2003 Undeclared identifier: ‘DecimalSeparator’
[dcc32 Error] ZSysUtils.pas(1465): E2003 Undeclared identifier: ‘ThousandSeparator’
[dcc32 Warning] ZSysUtils.pas(1467): W1000 Symbol ‘AnsiStrPos’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1468): W1000 Symbol ‘AnsiStrPos’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1479): W1000 Symbol ‘AnsiStrPos’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1483): W1000 Symbol ‘AnsiStrPos’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1484): W1000 Symbol ‘AnsiStrPos’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1512): W1000 Symbol ‘StrLen’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Warning] ZSysUtils.pas(1531): W1000 Symbol ‘StrLen’ is deprecated: ‘Moved to the AnsiStrings unit’
[dcc32 Fatal Error] ZEncoding.pas(917): F2063 Could not compile used unit ‘ZSysUtils.pas’
Failed
Elapsed time: 00:00:00.3
Версия Delphi XE8. Как исправить? Спасибо.
Василий, Вы же используете последнюю версию (ZEOSDBO-7.0.3) компонент и выбрали правильный пакет для сборки?
>Undeclared identifier: ‘DecimalSeparator’
Спрашиваю потому что DecimalSeparator уже задается не напрямую, а с использованием FormatSettings.