Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 09:56   #11
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

Я сейчас закомментировал весь код модуля после проблемной строчки она вторая в модуле, и ошибка вышла та же, чего и требовалось ожидать. Теперь по поводу другого кода можно не переживать).
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 11.02.2015, 09:59   #12
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

я использую модуль MySQLClient.
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 11.02.2015, 10:23   #13
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

А вы меня все-таки навели на мысль). Я сейчас по F7 пробежался (раньше не догадался)), эта ошибка выпрыгивает в модуле MySQLClient в строчке:
Код:
FHost        :='localhost';
FHost это string.
Код:
private
    Session       : mysql;
    Thread        : TmySQLThread;
    overflow2     : array[0..127] of char; // overflow catch

    FThreaded, FConnected    : boolean;

    FHost,
    FUser,
    FPasswd,
    FDb           : string;

    FPort         : integer;
    ......................................
Код модуля в архиве.
Вложения
Тип файла: zip mySQLClient.zip (9.3 Кб, 8 просмотров)
Ищущий да обрящет

Последний раз редактировалось fredwriter; 11.02.2015 в 10:28.
fredwriter вне форума Ответить с цитированием
Старый 17.02.2015, 10:22   #14
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

Всем снова здравствуйте, были другие дела, поэтому я этой проблемой не занимался.
Проблема в строках, почему-то когда я создаю строку глобально при создании класса независимо в pvivate или в public, она не инициализируется, пробовал выделить память через SetLength, на этой же строке выделения памяти выдается та же ошибка. Внутри методов класса строки создаются нормально.
Код:
type
  TCustom_mySQLClient = class(TComponent)
  private
    Session       : mysql;
    Thread        : TmySQLThread;
    overflow2     : array[0..127] of char; // overflow catch

    FThreaded, FConnected    : boolean;
    s_12: string; //ОШИБКА
    m15: integer;
    FHost: string; //ОШИБКА
    FUser,
    FPasswd,
    FDb           : string //ОШИБКА;

    FPort         : integer;

    FCapabilities : TSetClientCapabilities;

    FOnConnect : TmySQLThread_OnComplete;
    FOnConnectError : TmySQLThread_OnError;

    procedure   SetHostname(const S : string);
    function    GetHostname : string;
    procedure   SetUsername(const S : string);
    function    GetUsername : string;
    procedure   SetPassword(const S : string);
    function    GetPassword : string;
    procedure   SetDatabase(const S : string);
    function    GetDatabase : string;

    procedure   SetCapabilities (const C : TSetClientCapabilities);
    function    GetCapabilities : TSetClientCapabilities;

    procedure   SetPort(const i : integer);
    function    GetPort : integer;

    function    GetServerInfo : string;
    function    GetClientInfo : string;
    function    GetHostInfo   : string;
    function    GetProtoInfo  : byte;

    function    GetErrorMsg : string;
    function    GetStat     : pchar;
  protected
    property    Connected : boolean read FConnected;
    property    Threaded : boolean read FThreaded write FThreaded;

    property    Hostname : string read GetHostname write SetHostname;
    property    Username : string read GetUsername write SetUsername;
    property    Password : string read GetPassword write SetPassword;
    property    Database : string read GetDatabase write SetDatabase;

    property    Port : integer read GetPort write SetPort;

    property    Capabilities : TSetClientCapabilities read GetCapabilities write SetCapabilities;

    property    ServerInfo : string read GetServerInfo;
    property    ClientInfo : string read GetClientInfo;
    property    HostInfo   : string read GetHostInfo;
    property    ProtoInfo  : byte   read GetProtoInfo;

    property    ErrorMsg   : string read GetErrorMsg;
    property    Stat       : pchar read GetStat;

    property    OnConnect      : TmySQLThread_OnComplete read FOnConnect      write FOnConnect;
    property    OnConnectError : TmySQLThread_OnError    read FOnConnectError write FOnConnectError;
  public
    constructor Create(AOwner : TComponent); override;
    destructor  Destroy; override;

    function    Connect : boolean;
    function    SelectDatabase : boolean;

    function    CreateDatabase(const NewDb : string) : boolean;
    function    DropDatabase  (const DropDb : string) : boolean;

    function    CreateQuery : TmySQLQuery;
    function    Execute(Query: String): Boolean;

    function    ListDatabases(const Wild : string; L : TStringList) : boolean;
    function    ListTables   (const Wild : string; L : TStringList) : boolean;
    function    ListFields   (const TableName, Wild : string; L : TStringList) : boolean;
    function    ListProcesses(L : TStringList) : boolean;

    function    Ping : integer;
    function    Kill(const pid : integer) : integer;
    function    Options(opt: _mysql_option; arg: pchar) : integer;

    function    Refresh(const RefreshOptions: TSetRefreshOptions) : integer;
    function    Shutdown : integer;

    procedure   Close;
  end;
  
  constructor TCustom_mySQLClient.Create(AOwner : TComponent);
var
  i : integer;
//  s_15: string;
begin
  inherited Create(AOwner);

  // Fill overflow Buffer with $FF for purpose of debugging overflows
  for i:=0 to sizeof(overflow2)-1 do overflow2[i]:=#$FF;

  Thread         :=nil;
  FOnConnect     :=nil;
  FOnConnectError:=nil;

  SetLength(s_12, 0); //ОШИБКА
  s_12        :='localhost'; //ОШИБКА
  m15 := 23;
  FConnected   :=FALSE;
  FThreaded    :=FALSE;
//  SetLength(FHost, 0);
//  FHost        :='';
//  FUser        :='';
//  FPasswd      :='';
//  FDb          :='';
//  FPort        :=MYSQL_PORT;
  FCapabilities:=[CLIENT_LONG_PASSWORD,CLIENT_CONNECT_WITH_DB];
end;
Почему-то при любом обращении к строке созданной глобально возникает ошибка.
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 17.02.2015, 10:39   #15
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

где тут хоть 1 глобальная строка?
lomastr_ вне форума Ответить с цитированием
Старый 17.02.2015, 10:43   #16
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
где тут хоть 1 глобальная строка?
Я не правильно выразился, правильно будет: при описании в public или private разделах как свойство класса.
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 17.02.2015, 10:51   #17
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

это не свойства
вы что, чужие исходники правите? а зачем?

Цитата:
TMYSQLCLIENT_LAST_MODIFIED = '12.06.1998a';
вы уверены что оно вообще рабочее?
lomastr_ вне форума Ответить с цитированием
Старый 17.02.2015, 12:23   #18
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
это не свойства
Ну хорошо), может Вы мне сами скажете как это называется?
Объявление переменной в private или public разделе класса как грамотно назвать?
Там строка, s_12 я завел, и FHost и т. д., что там уже были
вы что, чужие исходники правите? а зачем?
Цитата:
Сообщение от lomastr_ Посмотреть сообщение
вы уверены что оно вообще рабочее?
Ну пока проблема только со строками, до этого я уже ошибок 100) исправил, с этой не могу совладать никак(. Исправлю, будет рабочее).
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка доступа к памяти FantaC Общие вопросы C/C++ 4 24.02.2012 00:14
Ошибка доступа к памяти Dmitry333 Компоненты Delphi 12 30.03.2011 15:27
Ошибка доступа при выделении памяти в чужом процессе Neoteric Общие вопросы Delphi 21 06.12.2010 16:50
Ошибка доступа памяти, при работе с принятой строкой. Zeraim Работа с сетью в Delphi 11 26.01.2010 01:11
Ошибка доступа к памяти AzoTik Общие вопросы Delphi 6 22.01.2010 10:17