MySQL Control

В далеком 2007 году мною был написана Delphi компанента для работы с СУБД MySQL. Тогда же я выложил ее на своем сайте. Однако с тех пор сайт несколько раз переписывался и некоторый контент к сожалению был утерян. Я считал что компанента тоже потеряна...

Однако, сегодня, по просьбам трудящихся, я таки порылся в архиве старых исходников и нашел ее.

Если она еще кому-то нужна, то вот она.

А вот здесь можно найти MySQL консоль.

Комментарии

  • test#

    Виталий, здравствуйте!

    К сожалению не получается скачать файл MySQL.rar, подскажите как это можно сделать, или по-возможности отправьте мне этот файл на e-mail. Заранее благодарю.

  • test#

    Здравствуйте 

    Всётаки есть компонента для delphi 7 или как поправить

      public type

    Вот на эту строчку

  • test#

    Юзаю Delphi 7. Заменил в файле &to на _to. Компонент все-равно не встает. Ругается на:

      TMySQLCustomDataSet = class(TComponent)

      public type

    Вот на эту строчку

    • Виталий Лещенкоавтор#

      Компонент написан на Delphi 2005. т. е. в Delphi 7 он не соберётся.

  • test#

    Отличный класс, спасибо.

    Заметка. Если при попытке установить визуальный компонент, который будет использовать libmysql.dll, будет возникать ошибка IDE:

    =====

    Can't load package packname. 

    Неверная попытка доступа к адресу памяти.

    =====

    попробуйте заменить libmysql.dll на библиотеку другой версии.

     

    У меня аналогичная проблема была с версией 5.0.41.

  • test#

    пользуюсь твоей компонентой, за что большое спасибо!

    в случае чего у меня есть версия компонент 1.1 MySQL и MySQLClasses

  • test#

    Добрый день, возможно ли с помощью вашего компонента записывать данные в поле типа Blob?

  • test#

    blob я уже искал =) Однако с этим "подготовить строку" так и не смог разобраться =/

  • test#

    Я так и думал, записать в строку это не трудно, но появлется трабл с непечатными символами, из-за которых записать эти данные трудновато, не говоря уже о том что там могут быть разные ковычки о_О

  • Виталий Лещенкоавтор#

    Компонент был написан в более поздней версии. & позволяет в качестве переменной использовать зарегистрированное слово to.

    Для компиляции в Delphi 7 просто замените &to на что-нибудь другое. Например _to.

  • Виталий Лещенкоавтор#

    Да, это возможно. Однако предварительно надо подготовить строку. Поищите blob в исходниках...

  • Виталий Лещенкоавтор#

    Алгоритм работы примерно такой: бинарные данные конвертируются в строку, затем эта строка передается в качестве параметра для sql запроса.

  • Виталий Лещенкоавтор#

    У TMySQLCustomDataSet Есть 2 метода:

    function BinaryToString(const p: Pointer; size: Integer): string; procedure StringToBinary(const s: String; p: Pointer; out size: Integer); С помощью которых можно работать с бинарными данными. Эти методы предназначены как раз для того, чтобы не было проблем с непечатаемыми символами.  

  • Виталий Лещенкоавтор#

    Компонент был написан на delphi 2005 или выше. Для того, чтобы он собрался в delphi 7 надо немного переделывать.

  • test#

    Привет.

    Пытаюсь добавить MySQL Control компонент, скачанный по представленной ссылке, а IDE (Delphi 7)при компиляции выдает, что "&" недопустимый символ в параметре to некоторых функций. 

    Никто не подскажет как решить проблему? 

  • Алексей_Ko#

    Добрый день.

    Извинитее за глупые вопросы.

    Пользуюсь Вашим трудом давно, но только ДОБАВЛЕНИЕ, УДАЛЕНИЕ, ОЧИСТКА записей.

    А вот тут встал вопрос о чтении данных. возникла ошибка.

    При запросе: query_result := MySQL.Query('select * from rzd  '); выдает ошибку. Скорее всего не может прочитать строку, т.к.

    при запросе: query_result := MySQL.Query('select kod1 from rzd  '); все работает.

    А вот при : query_result := MySQL.Query('select kod4,kod1 from rzd  '); показывает только первое значение.

    Если в запросе дольше 3 колонок, то ошибка.

    Что может быть не так?

  • Виталий Лещенкоавтор#

    Если честно, то я уже лет 5 Delphi не запускал. Сейчас моя основная деятельность связана с C#.

    Поэтому я понятия не имею почему что-то начало глючить. Исходники открыты, попроуйте подебажить.

  • Алексей_Ko#

    Спасибо.

  • Алексей_Ko#

    День добрый.

    МОЖЕТ КОМУ И ПОМОГУ С MySQL.

    Данные компонент:  MySQL, MySQLClasses немного доработал (да простит меня их Хозяин).

    Но! Есть огромное НО. Сегодня 04.04.20014г., Все ID не работают с этими "модулями" (по коду SELECT*FROM), кроме старого Delphi 7.

    Не работает на XE5, 2010,2007, читайте выше.

  • satinfo#

    Отличный компонент! Спасибо автору! 

    C cp1251 все отлично а вот на базе utf8 проблемы с WHERE сервер получает кракозяблы( ,SET CHARSET utf8 помог только для полученя данных, может кто сталкивался подскажите как вылечить.

     

  • Виталий Лещенкоавтор#

    Попробуйте сразу после подключения выполнить команду set names utf8.

  • mserg1972#

    Понимаю, что это наверное вязано со старой версии delphi на delphi7, но сам так и не смог исправить ошибку в файле mysqlclasses.pas

    Подскажите как надо поправить код, что бы при компиляции - в delphi7 - не вылазила ошибка

     

    TMySQLCustomDataSet = class(TComponent)

      public type

     

     

     

  • ILIAIT#

    MySQL 5.x при ошибке Commands out of sync; you can't run this command now надо дополнить класс,что бы очищался множественный результат. { Выполняет запрос SQL, указанный в аргументе. Возвращаемые значения True при успешном выполнении запроса. False, если произошла ошибка. Отличие от ExecSQL, после выполнения очищает буфер от всех результатов, что бы повторное использование не выбивало по ошибку 2014. } function TMySQL.ExecSQLNill(const SQL: AnsiString): Boolean; var FRes: pmysql_res; begin if not Connected then begin Result := False; Exit; end; if (mysql_real_query(FMySQL, PAnsiChar(SQL), Length(SQL)) = 0) then begin FRes := mysql_store_result(FMySQL); if FRes <> nil then begin mysql_free_result(FRes) ; Result :=True; end else Result := False; end else Result := False; end; Result :=True; end else Result := False; end else Result := False; end;

  • ILIAIT#

    А что бы вообще выполнялись процедуры надо менять строку в процедуре procedure TMySQL.SetConnect(Value: Boolean); PAnsiChar(FPassword), PAnsiChar(FDatabase), FPort, nil, 0); //соединяемся с MySQL на PAnsiChar(FPassword), PAnsiChar(FDatabase), FPort, nil, 131072); //соединяемся с MySQL для процедур

  • ILIAIT#

    Всё работает на XE5.

    • Виталий Лещенкоавтор#

      Даже не думал что спустя столько лет, это кому-то ещё пригодится.

Оставить комментарий могут только зарегистрированные пользователи.

Войдите на сайт или зарегистрируйтесь, чтобы оставить комментарий.