Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки при попытке подключения к MySQL. 
:(
    Опции темы
Mal Hack
Дата 12.11.2004, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Уже два часа юзаю поиск тут и на 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'

Дык вот, когда пытаюсь Active сделать = TRUE через инспектор объектов - получаю....
1. libmysql.dll not found. (Понапихал куда только можно... ив /bin и в папку с проектом и в c:/windows и /system32)...
2. Очищаю Vendorlib, получаю DLL/Shared Library name not set.
Пробовал и полные пути написать - та же фигня..

Как от всего этого избавиться понять никак нет могу...
С самим MySQL через PHP работаю уже года два.
С базами из Delphi работал только с 7 Paradox'ом...

Еще один такой момент...
В результате каких-то монипуляций иногда выскакивает еще одна вещь что-то типа "Невозможно загруить драйвер" (или функцию драйвера)...
PM ICQ   Вверх
<Spawn>
Дата 12.11.2004, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Используй компоненты ZeosAccess


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Mal Hack
Дата 12.11.2004, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



<Spawn>
Дело в том, что программу надо будет компилить на многих компах, гд возможно не удастся установить данное расширение...
(задание по практике в учеьном заведении).
Поэтому хочется обойтись стандартными средствами...
Цитата
Используй компоненты ZeosAccess

TMySQL это оно?
PM ICQ   Вверх
Kesh
Дата 13.11.2004, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Mal Hack насколько я понял - нет... поищи ZeosDBO

http://www.zeoslib.net/


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 13.11.2004, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Если в этом покопаться, то можно рпзобраться.. Но повторюсь, надо сделатьна стандартном dbExpress'e...
Приложение - просто практика, никуда дальше не пойдет, поэтому надо сделать проще...
Все-таки инитересует вариант работы именно с dbExpress..
PM ICQ   Вверх
Mal Hack
Дата 14.11.2004, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Уф, ну и многих же людей я запряг со своей проблемой...
Итак, вопрос решился...
Рассказываю.
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;

Все. К БД коннектиться... Дальше уже можно работать...

Есть еще два маленьких вопроса...
1. Соединение с базой лучше закрывать только при закрытии программы и открывать при открытии или проделывать эти операции перед выполнением каждого запроса?
Если все-таки лучше держать соединение открытым, то как во время работы программы проверить доступность сервера? Грубо говоря как mysql_ping() в PHP.
2. Как (оптимальнее и без возникновения ошибок) закрыть соединение...
Connection.Free;
DataSet.Free;
Этого будет достаточно?
PM ICQ   Вверх
Kesh
Дата 14.11.2004, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



1. Лучше кон6ечно держать соединение открытым во время работы программы... Т.к. выполнение подключения перед каждым запросом - трата времени и ресурсов...
Доступность сервера можно проверить по Connection.Connected...
2. Соединение закрывается по Connection.close... Делать Free перед закрытием программы не нужно, т.к. программа при закрытии его все равно выполнит...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 14.11.2004, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Спасибо (+1)
PM ICQ   Вверх
Mal Hack
Дата 14.11.2004, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Появляется вот такая ошибка на Open из предыдущего кода..
Раньше она появлялась на Закрытии приложения...
--Resize_Images_Alt_Text--
Что за ошибка?
PM ICQ   Вверх
Mal Hack
Дата 14.11.2004, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Я конечно дико извиняюсь, но...
От вышеупомянутого "счастья" избавился путем подмены 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;


Отловить именно момент, когда запрос не выполнился...
Поскольку при такой констркции: On Exception do (или EDataBaseError) shwmessage показывается в любом случае, даже если запрос выполняется.
PM ICQ   Вверх
Kesh
Дата 14.11.2004, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



А там разве ExecSQL нету?..
Добавлено @ 19:19
Оно вместо Open - Close используется для разовых инструкций...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 14.11.2004, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 3
Всего: 54



Из Help по Delphi 8
Цитата
Executes a query or stored procedure that does not return a set of records.

Class
TSQLDataSet
Syntax

public function ExecSQL(ExecDirect: Boolean): Integer;


Description
Call ExecSQL to execute an SQL command that does not return a set of records. This command is a query other than a SELECT query, such as an INSERT, UPDATE, DELETE, or CREATE TABLE query.

ExecDirect indicates that the query does not need to be prepared before it is executed. This parameter can be set to true if the query does not include any parameters. When ExecDirect is false, the query will be prepared before it is executed. Even when ExecDirect is false, you can avoid preparing the query every time ExecSQL is called by setting the Prepared property to true before calling ExecSQL the first time.

ExecSQL returns the number of rows affected by the executed command. This becomes the value of the RowsAffected property.

Note: Do not use ExecSQL for commands that return data. These include any use of the ctTable command type, SELECT queries, and stored procedures that return a cursor. When the command returns data, use the Open method or set the Active property to true.





--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 14.11.2004, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Kesh есть-то он есть, н с ним в любом случае showmessage показывается...
PM ICQ   Вверх
Mal Hack
Дата 15.11.2004, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Путем проб и ошибок, осталось только одно...
При выполнении хоть 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;

Если в SQLDataSet.CommandText записать Inert ..., то запрос выполняется... Подрузомеваю, что выполняется и SELECT.
Но, на SQLDataSet.Open; выскакиват AccessViolation и дальше я так понимаю процедура не продолжается..
Посему вопросы:
1. Какие мои действия приводят к AccessViolation, или наоборот, чего не хватает.
2. Достаточно ли этих строк для отображения результата выполнения SELECT запроса в таблице..
PM ICQ   Вверх
<Spawn>
Дата 15.11.2004, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



В кмком модуле у тебя находятся компоненты доступа к БД? В каком участке кода пояляется AccessVioletion? Не в OnCreate главного модуля?

А как это могло скомпилиться :

Код

'SELECT * FROM `service_categories`  LIMIT 0 , 30';


Тебе нужно тут продублировать одинарные ковычки:

Код

'SELECT * FROM ''service_categories''  LIMIT 0 , 30';


Это сообщение отредактировал(а) <Spawn> - 15.11.2004, 05:32


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Mal Hack
Дата 15.11.2004, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата
В кмком модуле у тебя находятся компоненты доступа к БД? В каком участке кода пояляется AccessVioletion? Не в OnCreate главного модуля?

Все объекты создаются в главном модуле. При OnActivate.
AccessViolation появляется именно на Open у SQLDataSet.
Цитата
Тебе нужно тут продублировать одинарные ковычки:

Там не ковычки, а ` (буква Ё, где ). Синтаксис MySQL такую запись спокойно пропускает.
Да и Делфи не ругается...

Если что, сюда скинул исходники (152 кила) http://mal-hack.net/delphi.rar
PM ICQ   Вверх
Mal Hack
Дата 18.11.2004, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Решение нашел...
1. Без использования dbExpress, а с использованием специальных классов TMySQLClien & TMySQLResult.
2. Все эти файлы ( файл приаттачит Secandr (90 кил)) надо положить либо в папку с проектом, либо в <Delphi_dir>/lib.
3. Код:
Сразу говорю, показал только основные моменты. Код, для определения ошибок и т.п. писать не стал.
Код

uses
  .....
 uMysqlClient, uMysqlCT, uMysqlErrors, uMysqlHelpers, uMysqlNet, uMysqlNewPassword, uMysqlSSL, uMysqlVio;

type
 ...
   procedure QueryData( Query : string); // Результирующий запрос (заносим данные в таблицу)
   procedure QueryNoData( Query : string ); // insetrt, delete - нет полученны данных
 ...

var
  ...
 SQLConnection     : TMysqlClient; // Объявляем переменную для соединения.
 Grid              : TStringGrid;
  ...

implementation
....

// Установка соединения
SQLConnection := TMysqlClient.Create;
 with SQLConnection do
  begin
   Host      := 'localhost';
   User      := 'root';
   Password  := '';
   Db        := 'mysql';

  try
   connect;
  Except On Exception Do
   begin
     Application.MessageBox( 'К сожалению, соединиться с MySQL-сервером не удалось. Проверьте правильность ввода всех параметров.' , 'Ошибка соединения' , 0 );
    exit;
   end;
  end;
 end;

// Выполнение запроса:

procedure TMainForm.QueryData( Query : string );
var
mysql_result : TMySQLResult;
i , j : integer;
OK : boolean;
begin
OK := true;

try
 mysql_result := SQLConnection.query( Query , true , OK );
Except On Exception Do
 begin
  Application.MessageBox( 'Запрос не выполнилс.' , 'Ошибка соединения' , 0 );
  exit;
 end;
end;

with Grid do
 begin
  ColCount := mysql_result.FieldsCount;
  RowCount := mysql_result.RowsCount+1;

  if RowCount = 1 then
   FixedRows := 0
  else
   FixedRows := 1;

  for i := 0 to mysql_result.RowsCount - 1 do
   for j := 0 to mysql_result.FieldsCount do
    begin
     Cells[ j , i + 1 ] := mysql_result.FieldValue( j );
     mysql_result.Next;
    end;
 end;

mysql_result.free;
end;

procedure TMainForm.QueryNoData( Query : string );
begin
// Аналогично предыдущей процедуре, без внесения данных в таблицу. для запросов Insert, Update .....
end;



PM ICQ   Вверх
Secandr
Дата 18.11.2004, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: нет
Всего: 39



zlib

Присоединённый файл ( Кол-во скачиваний: 108 )
Присоединённый файл  zlib.rar


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Secandr
Дата 18.11.2004, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: нет
Всего: 39



mysql

Присоединённый файл ( Кол-во скачиваний: 127 )
Присоединённый файл  mysql.rar


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Mal Hack
Дата 31.1.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Сорри, забыл отписаться о логической ошибочке.
В цикле занесеня данны в GRID вместо:
Код

 for i := 0 to mysql_result.RowsCount - 1 do
  for j := 0 to mysql_result.FieldsCount do
   begin
    Cells[ j , i + 1 ] := mysql_result.FieldValue( j );
    mysql_result.Next;
   end;

Надо
Код

 for i := 0 to mysql_result.RowsCount - 1 do
  begin
   for j := 0 to mysql_result.FieldsCount do
    Cells[ j , i + 1 ] := mysql_result.FieldValue( j );

    mysql_result.Next;
   end;

Т.е. переход на новую запись должен осуществляться после того, как пройдет цикл по полям текущей записи.
PM ICQ   Вверх
Cetus
Дата 12.3.2005, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



Все должно работать без кавычек, по крайней мере с MySQL 4.0.2

Mal Hack, ты пробовал блокировать таблицы в своем проекте с DbExpress? (lock table tableOne write; unlock tables)
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Mal Hack
Дата 12.3.2005, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Cetus @ 12.3.2005, 00:40)
Все должно работать без кавычек, по крайней мере с MySQL 4.0.2

Какие ковычки? smile

Цитата(Cetus @ 12.3.2005, 00:40)
Mal Hack, ты пробовал блокировать таблицы в своем проекте с DbExpress? (lock table tableOne write; unlock tables)

Через dbExpress у меня запросы не выполнялись. Через класс TMySQLClient не пробовал.
PM ICQ   Вверх
Cetus
Дата 12.3.2005, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



про кавычки в другой теме где то вычитал... smile
TMySQLClient из MySQL.rar который выложил Secandr?
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Mal Hack
Дата 12.3.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Cetus @ 12.3.2005, 01:09)
TMySQLClient из MySQL.rar который выложил Secandr?

Ага.
PM ICQ   Вверх
Bars_rb
Дата 19.3.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.2.2007
Где: Ташкент

Репутация: нет
Всего: нет



Хм.
Столкнулся с той же проблемой.
Стоит MySQL 5 версии.
Требует libmysql.dll.
Понапихал ее всюду, но тут сказали, что надо от третей версии.
Вопрос. Где ее взять? Не качать же ради нее весь серв. И пудет ли пахать файл от третей версии с 5 МуСКЛ-ом???
PM MAIL ICQ   Вверх
Rodman
Дата 19.3.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Bars_rb
Цитата(Bars_rb @  19.3.2007,  15:47 Найти цитируемый пост)
libmysql.dll.

в инете свободно лежит...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Bars_rb
Дата 19.3.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.2.2007
Где: Ташкент

Репутация: нет
Всего: нет



Хм. 
Шото я найти не могу...
Мож кто поделиться либо линком, либо файлом.
PM MAIL ICQ   Вверх
B2_Russia
Дата 18.5.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Народ я может темень полная, но что за zlib? Это для чего еще? Это куда? =)

Вышел на эту тему ползая по форуму в поисках принципах работы с mySQL.
Пишу программу которая будет работать в 2 вариантах - PHP и Delphi
Как Mal тоже работал раньше с мусклом только из PHP...
PM WWW ICQ   Вверх
B2_Russia
Дата 26.9.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Прошло много времени...

Все уже успел успешно применить...

Написал CMS-ку на PHP, сделал клиента с использованием zlib и MySQL.zip выложенных в этом треде.
Но как только поставил CMS на хостинг, возникла проблема несовместимости версии клиента. Там требуется MySQL-клиента 4.1.18.
И все встало! Прога работает только с локальной БД всвязи с чем является бесполезной :((((((((((((((((((((((((

Как решить проблему?
PM WWW ICQ   Вверх
B2_Russia
Дата 27.9.2007, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Вобщем что только не перепробовал, всеми способами одна ошибка!
Понятно что не нравится версия клиента пишет что не поддерживается протокол, я уже и 5.0 ставил и 4.1.22 MySQL!

NEED HELP!!!

Это сообщение отредактировал(а) B2_Russia - 29.9.2007, 19:26
PM WWW ICQ   Вверх
Rodman
Дата 27.9.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



B2_Russiaчитал?!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
B2_Russia
Дата 27.9.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Да читал, сейчас прочитал повнимательней, и вроде все прошло удачно с подключением и выбором БД.
Щас попозже попробую выборку сделать.
Всем кто встретился с этой проблемой, идите по выше приведенной ссылке.
Если возникнут траблы отпишу!
Rodman, thx!
PM WWW ICQ   Вверх
malice_
Дата 28.9.2007, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.6.2007

Репутация: нет
Всего: нет



какая у тебя версия delphi и mysql?

PM MAIL   Вверх
B2_Russia
Дата 29.9.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Delphi 7, mysql 4.1.22 
До этого стоял mysql предыдущей версии .
Сейчас все ок.
PM WWW ICQ   Вверх
malice_
Дата 1.10.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.6.2007

Репутация: нет
Всего: нет



у меня ничего не получилось с 5.0.0.

куда копировал либ и pas? брал его из темы ?

Это сообщение отредактировал(а) malice_ - 1.10.2007, 09:34
PM MAIL   Вверх
Rodman
Дата 1.10.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(malice_ @  1.10.2007,  09:31 Найти цитируемый пост)

куда вы копировали либ и pas

а через uses не получается подключить (кинуть канешь рядом с проектом)??? 
Цитата(malice_ @  1.10.2007,  09:31 Найти цитируемый пост)
у меня ничего не получилось с 5.0.0.

подробнее... по этому пояснению могу посоветовать поставить версию 4.ххх
PM MAIL WWW Skype GTalk YIM MSN   Вверх
B2_Russia
Дата 1.10.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



У меня версия 4, все работает, но судя по прилично изменившимся размерам libmysql.dll можно предположить что, там много чего поменялось в 5 версии, не исключено, что опять какой-нибудь алгоритм аутентификации, как было при переходе на 4 версию. 
Кстати, этот файл mysql.pas не разработчиками предоставляется случайно?
Тогда имеет смысл посмотреть при установке отметить галочку, чтобы были установлены тулзы для девелоперов, не помню как называется опция... Возможно найдешь в нем, что тебе нужно.
PM WWW ICQ   Вверх
B2_Russia
Дата 1.10.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В доску свой :)
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 3.7.2003
Где: Тверь

Репутация: нет
Всего: 1



Rodman, покажи пожалуйста пример если есть, как сделать выборку используя фукции mysql.pas?

Идея моя в том, чтобы сделать нечто похожее на набор классов TMySQLClient, TMySQLResult так как программа у меня уже написана под них, я сейчас слепил скелет этих классов, все что в примерах написано в закрепленном треде работает, но там нет ни одного примера выборки, как работать с результатом?

Например:
Код

function TMySQLClient.Query(q:string; b:boolean; bRes:boolean):TMySQLResult;
var
 mysql_result : integer;
 MySQLResult : TMySQLResult;
 MYSQL_RES : PMYSQL_RES;
begin
 result := nil;
 mysql_result := mysql_query(MySQL, PChar(q));
 // Где теперь PMYSQL_RES .... ??? 
 MySQLResult := TMySQLResult.Create(MYSQL_RES);
end;


В TMySQLResult мне нужно передать набор полученных данных, чтобы с ними работать используя функции типа First, Next, RecNo, GetFieldByName...
Которые я сам должен реализовать.
Проблема в получении данных, не могу понять как их забрать, как получить структуру MYSQL_RES?

Это сообщение отредактировал(а) B2_Russia - 1.10.2007, 10:09
PM WWW ICQ   Вверх
fidres
Дата 1.10.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: 1
Всего: 1



это вам на затравку. ;)
http://forum.vingrad.ru/forum/topic-134547...y1272485/0.html

по части результатов и их обработки - это всё, по идее, нужно в цикле вытаскивать... там же, скорей всего, возвращается некая структура данных! а значит несколько полей обрабатывается...
значит их нужно раскладывать по полочкам...
сам ещё этой хренью не занимался в плотную, другой рутиой занят... обработка и коррекция данных при вводе оных в поля ввода и формирования на основе этих данных корректных запросов.
smile
с работы уволился, но прогу не бросаю. потом продамкому-нить!
;)
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
fidres
Дата 1.10.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: 1
Всего: 1



кстати.
может завести отдельно топ по мускулю, а, Rodman? с крыжиком "важно", чтоб он никуда вниз не уползал...
и будем туда пихать свои наработки. кто чем богат... примеры, приёмы... (а если завести отдельную группу - то можно будет только девелоперам писать, а те, кто спросить чего захочет - чтоб в другую тему писали - права на группу забацать)
у меня пока только наработки по компонентам есть, в которые инфа вводится, чтоб потом в базу закидывать...
но думаю тож немаловажно.
могу поделица.
в основном не использую специализированные компоненты типа DB... SQL...
обрабатываю и вывожу в StringGrid'ы, ComboBox'ы... ну и обычные Edit'ы...
есть ещё CheckListBox...
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
Deepthroat
Дата 21.10.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 24.9.2007
Где: Outer Heaven

Репутация: нет
Всего: 2



Как я уже писал в другой теме, выход из ситуации для MySQL 5 и dbExpress есть.

Во-первых, надо использовать libmySQL.dll от той версии сервера, к которой намерены подключаться.
Во-вторых, надо использовать библиотеки отсюда http://www.crlab.com/dbx вместо предлагаемых dbExpress по умолчанию. Эти dll'ки работают с MySQL 5 без проблем.
PM MAIL WWW ICQ   Вверх
black_priest
  Дата 26.10.2007, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 19.3.2007
Где: Minsk

Репутация: нет
Всего: нет



Но эти либы на http://www.crlab.com/dbx платные. А есть ли бесплатное решение? Или нужно подождать пока сам борланд не возьмется за поддержку mysql 5?
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.