ZeosLib с протоколом общей памяти MYSQL? - PullRequest
2 голосов
/ 10 октября 2011

Я запустил свой локальный сервер MYSQL с включенным протоколом общей памяти.Как я могу подключиться к своему серверу с ZeosLib ?Где я могу указать, что он использует разделяемую память?

Я использую Lazarus (freepascal), хотя для Delphi (вероятно) будет одинаковым.

Ответы [ 2 ]

3 голосов
/ 13 октября 2011

Даже если TZConnection не имеет свойства строки подключения, вы можете установить дополнительные параметры подключения в TZConnection.Properties.

Я предполагаю, что вы запускаете MySQLсервер таким образом

mysqld --skip-networking --shared_memory=1 --shared-memory-base-name='MyMemoryDB'

Чтобы включить подключение к общей памяти, вы можете попытаться добавить следующие строки конфигурации в свойство TZConnection.Properties во время разработки в Инспекторе объектов.Обратите внимание, что protocol должен быть установлен как есть, а shared-memory-base-name на то же значение, которое вы использовали в параметре командной строки.Значением по умолчанию является MYSQL, поэтому, если вы пропустите параметр в командной строке, вам следует изменить следующие значения MyMemoryDB на MYSQL.

Поэтому в свойстве TZConnection.Properties попробуйте добавить эти две строки

protocol=memory
shared-memory-base-name=MyMemoryDB

или во время выполнения в TZConnection.BeforeConnect использовании обработчика событий

procedure TForm1.ZConnection1BeforeConnect(Sender: TObject);
begin
  ZConnection1.Properties.Add('protocol=memory');
  ZConnection1.Properties.Add('shared-memory-base-name=MyMemoryDB');
end;

Надеюсь, это вам как-то поможет.Я не проверял это, потому что у меня нет подходящей среды.

0 голосов
/ 10 октября 2011

ЕСЛИ ZeOS поддерживает его, вероятно, это текстовое свойство, которое можно добавить к параметрам соединения (TZ). Как и другие свойства clientlib.

...