| Программирование под linux, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
PickList и единицы измерения..., PickList и единицы измерения... Расчет полей fkCalculated, проблема :( Первое поле в таблице, Порядковый номер записей...??? Lookup Field, создать программно ВЫборка данных из запроса, InterBase & FIBPlus текст из строки и столбца компонента TDBGridEh интерфейс проблема с ado Подсчитать кол-во записей в ClientDataSet, Если поле Key - примари индекс FIBDataSet и DBComboBox Создание индекса, Проблема с созданием индекса CxGrid. никак не разберусь ..:-(, Колонка типа Image qreport, как скачать qreport Нет доступа после обрыва связи, SQLserver2000, ADO Народ! Отцу пиво проспорю! Insufficient memory for operation, снова :) Ошибки при попытке подключения к MySQL. Firewall на Delphi, Firewall на Delphi Транзакции и блокировки в MySQL, MySQL - DbExpress - Delphi Как создать событие наячейку DBGrid, Если можно, то ссылку на Литературу... Создание таблиц, Как создать таблицу из Delphi обновление данных Фильтрация данных, продолжение темы Проблема с Locate BDE - "Insufficient memory for operation" Как прочитать базу данных с Досовским шрифтом, Помогите!! Чтение, запись в MS Access (*.mdb), как это делается? DAO или ADO? Подскажите, Что я сделал неправильно Почему в DBGrid нельзя статически менять, свойства атрибутов Как открыть базу для просмотра с CD Активация индексов в связанны БД не по полям связи, Может пробовать Query? Связь *.xls файла с TTable Проблема с подключением ADOConnection Как Вы относитесь к курящим девушкам? Delphi + MySQL (Знаю, что обсуждалось, но у меня с сохранение картинки на SQL сервере Надобно базу написать... не представляю как и чем, вобщем, смотрите ник Как создать итогове поле? SoundBlaster Резервное копирование таблиц БД, BDE, Paradox Как реализовать "Выделить все" с TBookmark ADO плавный скролл в DBGrid, DBGrid Работы с RaveReport БД, БД Вопрос на тему: Ehlib, как правильно его установить? Как взять из базы данных определенные её части Как сохранить изменения в базе данных, Как сохронить изменения при нажатии Качественные визуальные компаненты, доступа к БД Как граммотно на русский язык, перевести Handle? Исключения в БД полю не задается значение по умолчанию :( индексы Как отфильтровать данные, помогите новичку Xml, как сделать и затем загрузить имя БД Сетевой подключение к SQLServer2000, Иногда программа не запускается вообще. Изображения в DBGrid Удаление данных из BLOB-поля, как сделать? Копия данных из одного DataSet в другой Проблема при сохранении файла из БД, Посмотрите что может быть не так База данных Помогите, очень срочно!!!, Как загрузить картинку в поле sql запросы и рекурсия, рекурсия и бд. создание required поля, через sql Выборка записей через ADOQuery изменение содержимого OLE-containera, сохранить изменения в БД Interbase, backup и restore, сервак вылетает :( снова sql, create table RecordCount, Считает количество записей 1 мин. |
Платные хостинги Раскрутка сайта Книги по программированию Ошибки при попытке подключения к MySQL.
- Уже два часа юзаю поиск тут и на mysql.ru но ниче найьт не могу..Трабла такая...Используя dbExpress создаю соединение с mysql SQLConnection1. Вот код из DFM'a.Код object SQLConnection1: TSQLConnection ConnectionName = 'MySQLConnection' DriverName = 'MySQL' GetDriverFunc = 'getSQLDriverMYSQL' LibraryName = 'dbexmysql.dll' Params.Strings = ( 'DriverName=MySQL' 'HostName=127.0.0.1' 'Database=lesson' 'User_Name=root' 'Password=' 'BlobSize=-1' 'ErrorResourceFile=' 'LocaleCode=0000') VendorLib = 'libmysql.dll'highlightSyntax('delphi0N2M1M','delphi');Дык вот, когда пытаюсь Active сделать = TRUE через инспектор объектов - получаю....1. libmysql.dll not found. (Понапихал куда только можно... ив /bin и в папку с проектом и в c:/windows и /system32)...2. Очищаю Vendorlib, получаю DLL/Shared Library name not set.Пробовал и полные пути написать - та же фигня..Как от всего этого избавиться понять никак нет могу...С самим MySQL через PHP работаю уже года два.С базами из Delphi работал только с 7 Paradox'ом...Еще один такой момент...В результате каких-то монипуляций иногда выскакивает еще одна вещь что-то типа "Невозможно загруить драйвер" (или функцию драйвера)... - Используй компоненты ZeosAccess - TMySQL это оно? - Mal Hack насколько я понял - нет... поищи ZeosDBOhttp://www.zeoslib.net/ - Если в этом покопаться, то можно рпзобраться.. Но повторюсь, надо сделатьна стандартном dbExpress'e...Приложение - просто практика, никуда дальше не пойдет, поэтому надо сделать проще...Все-таки инитересует вариант работы именно с dbExpress.. - Уф, ну и многих же людей я запряг со своей проблемой...Итак, вопрос решился...Рассказываю.1. В папочку с проектом кладем libmySQL.dll от 3 версии MySQL, от 4 будет писать unable to load....2. Предположим, что на форме есть 3 Edit'a для хоста, логина, пароля и базы.3. Объявляем Connection: TSQLConnection.4. При нажатии на кнопку соединения делаем..Код // Create Connection Connection := TSQLConnection.Create(Application); with Connection do begin ConnectionName := 'Connection'; DriverName := 'MySQL'; LibraryName := 'dbexpmysql.dll'; VendorLib := 'libmySQL.dll'; GetDriverFunc := 'getSQLDriverMYSQL'; Params.Add( 'HostName=' + ConnectEditHost.Text ); Params.Add( 'User_Name=' + ConnectEditUser.Text ); Params.Add( 'Password=' + ConnectEditPass.Text ); Params.Add( 'Database=' + ConnectEditBase.Text ); LoginPrompt := TRUE; try Open; Except On Exception Do begin Application.MessageBox( 'К сожалению, соединиться с MySQL-сервером не удалось. Проверьте правильность ввода всех параметров.' , 'Ошибка соединения' , 0 ); exit; end; end; end;highlightSyntax('delphiN2U2OW','delphi');Все. К БД коннектиться... Дальше уже можно работать...Есть еще два маленьких вопроса...1. Соединение с базой лучше закрывать только при закрытии программы и открывать при открытии или проделывать эти операции перед выполнением каждого запроса?Если все-таки лучше держать соединение открытым, то как во время работы программы проверить доступность сервера? Грубо говоря как mysql_ping() в PHP.2. Как (оптимальнее и без возникновения ошибок) закрыть соединение...Connection.Free;DataSet.Free;Этого будет достаточно? - 1. Лучше кон6ечно держать соединение открытым во время работы программы... Т.к. выполнение подключения перед каждым запросом - трата времени и ресурсов...Доступность сервера можно проверить по Connection.Connected...2. Соединение закрывается по Connection.close... Делать Free перед закрытием программы не нужно, т.к. программа при закрытии его все равно выполнит... - Спасибо (+1) - Появляется вот такая ошибка на Open из предыдущего кода..Раньше она появлялась на Закрытии приложения...Что за ошибка? - Я конечно дико извиняюсь, но...От вышеупомянутого "счастья" избавился путем подмены libmySQL.dllНо теперь вопрос в другом..Как в: Код SQLDataSet := TSQLDataSet.Create( Application ); with SQLDataSet do begin SQLConnection := Connection; CommandType := ctQuery; CommandText := 'INSERT INTO service_categories VALUES( "" , "text" ) '; DataSource := SQLDataSource; try Open; Except On Exception do begin showmessage( '12' ); exit; end; end; end;highlightSyntax('delphi2ZTZkM','delphi');Отловить именно момент, когда запрос не выполнился...Поскольку при такой констркции: On Exception do (или EDataBaseError) shwmessage показывается в любом случае, даже если запрос выполняется. - А там разве ExecSQL нету?.. Добавлено @ 19:19 Оно вместо Open - Close используется для разовых инструкций... - - Kesh есть-то он есть, н с ним в любом случае showmessage показывается... - Путем проб и ошибок, осталось только одно...При выполнении хоть Open, хоть ExecSQL, вылетает AccessViolation in address ... in module...На сколько я понимаю это может быть из-за того, что я неправильно связал DataSet, DataSource и Grid..Вот как делаю:Код SQLDataSet := TSQLDataSet.Create( Application ); with SQLDataSet do begin Parent := MainForm; SQLConnection := Connection; CommandType := ctQuery; end; SQLDataSource := TDataSource.Create( Application ); with SQLDataSource do begin Parent := MainForm; end; Grid := TDBGrid.Create( Application ); with Grid do begin Parent := MainPanel; ............. end; SQLDataSet.DataSource := SQLDataSource; SQLDataSet.CommandText := 'SELECT * FROM `service_categories` LIMIT 0 , 30'; SQLDataSet.Open;// Access Violation SQLDataSource.DataSet := SQLQuery; Grid.DataSource := SQLDataSource;highlightSyntax('delphiYmM4MD','delphi');Если в SQLDataSet.CommandText записать Inert ..., то запрос выполняется... Подрузомеваю, что выполняется и SELECT.Но, на SQLDataSet.Open; выскакиват AccessViolation и дальше я так понимаю процедура не продолжается..Посему вопросы:1. Какие мои действия приводят к AccessViolation, или наоборот, чего не хватает.2. Достаточно ли этих строк для отображения результата выполнения SELECT запроса в таблице.. - В кмком модуле у тебя находятся компоненты доступа к БД? В каком участке кода пояляется AccessVioletion? Не в OnCreate главного модуля?А как это могло скомпилиться :Код 'SELECT * FROM `service_categories` LIMIT 0 , 30';highlightSyntax('delphiNWMyMT','delphi');Тебе нужно тут продублировать одинарные ковычки:Код 'SELECT * FROM ''service_categories'' LIMIT 0 , 30';highlightSyntax('delphiwYzEzM','delphi'); Это сообщение отредактировал <Spawn> - 15.11.2004, 05:32 |