:: Visual Foxpro, Foxpro for DOS
MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
У меня это 4-й раз произошло.
Говорю за последний (4-й).
Есть таблица, кот. нормально читаю, если не задаю фильтр, кот. дает 0 записей!
Да, и тут MySql все делает без сообщений.
И у меня уже есть курсор, назовем его "w".
В нем где-то 10 полей.
Из них только одна уникальная тройка полей, если присутствует в
Select <<эта тройка>>,<<еще что-то или ничего>> from w ...
дает сообщение Feature not available, в переводе это, типа "жопа"

Вот написал тест, сканируем все таблицы всех БД.
Ловит. Исправляю вручную так
- Кинул таблицу в dbf
- Запомнил структуру таблицы (MySql)
- Удалил эту таблицу
- Создал ее
- Вставил записи из dbf

Получилось... Работает? Вроде, да.
Поставить все это на "профилактике"?
Там везде ключевое поле Recno! У меня по нему все Update'ы.
Autoincrement. Все сдвинется, так как уже Юзер что-то удалял, а тут с нуля.



Исправлено 1 раз(а). Последнее : Ydin, 24.02.18 19:09
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Написал такую "восстановиловку" - лечилку.
Но, лучше ей не пользоваться или только в ночь с четверга на вторник.
Т.к. автоматом при определении этой "порчи" можно нажить себе больше проблем, чем эта.



Исправлено 1 раз(а). Последнее : Ydin, 24.02.18 22:31
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Мало, что понял, но если
Ydin
Select <<эта тройка>>,<<еще что-то или ничего>> from w ...
дает сообщение Feature not available, в переводе это, типа "жопа"
- это код в фоксе, то пробуй:

from w ... NOFILTER.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
PaulWist
NOFILTER
И что? Курсор уже приехал от запроса MySql без ошибок, он не совсем адекватен.
А где мне приделать
Цитата:
NOFILTER
?
Я и без связи с ситуацией не понимаю как и где его втулить...

Я имею на своих руках больной курсор, которому не помогу, он заболел раньше, еще при зачатии от запроса к MySql.
Через ODBC - драйвер



Исправлено 1 раз(а). Последнее : Ydin, 24.02.18 22:36
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Это походу не к Фоксу проблема, а к MySql. Только запрос к MySql работает, но не работает на Фоксе простой запрос, типа
Sele Recno,Field1,Field2 from w into curs w1 - Feature not available
А сам курсор вижу через Browse, только он пустой, но это так и надо.
Могу ему строки добавить (Append Blank), дать Pack,Zap.
Но
Божья Коровка
У него гранитный камешек в груди



Исправлено 1 раз(а). Последнее : Ydin, 24.02.18 22:47
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Дык, при nofilter ошибка воспроизводится?

И второе, приведи явно типы в запросе к серверу и в запросе в фоксе.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 25.02.18 08:37
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
"отремонтировал" ту таблицу и теперь повторить не могу.
Таблица простая, в курсоре она
DATE D
WORKERS I(4)
SOST I(4)
DATEV D
OPERUS C(32)
MODUL C(50)
REGIM C(50)
IMAGE C(100)
ZMIST M
OTVET M
RECNO I
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
В принципе, ясно как это ловить. Читаю все таблицы с Where .F. в курсор, а потом Фоксовский Select с полным списком полей из курсора в курсор
И при ошибках сразу лечить. Но это можно только ночью делать...



Исправлено 1 раз(а). Последнее : Ydin, 25.02.18 10:43
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
2 PaulWist
Мне интересно, как бы с Nofilter, я его игнорировал раньше. ReadWrite или нет - мне ближе
Но в данной ситуации, что есть причина?
Вроде, запорченность курсора от запроса к MySql - устраняю там и устраняется здесь - в Фоксе с его курсором, кот. к нему приехал...

Ладно, меня практическая сторона интересует.
Кто-то с этим имеет опыт? Именно, с MySql?
Я пишу, как могу это диагностировать (кто-то, может, подскажет как лучше).
Я пишу как исправляю - это основная проблема... Это Offline решение - это слабо, это - плохое решение. Лучше, чем ничего.
И это основной мой вопрос по этой ветке.



Исправлено 2 раз(а). Последнее : Ydin, 25.02.18 15:12
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
1. Если запрос действительно вынимает данные из одно буквенного курсора w, то есть вероятность, что w совпадёт с рабочей областью в которой открыт другой курсор.

2. Если сервер возвращает пустой курсор, то фокс может по разному интерпретировать типы данных которое ему отдаёт ODBC, и принять RECNO Int за RECNO Logical, поэтому лучше приводить явно типы данных на сервере, например:

select cast(Field1 as int) as Field1 ... from
вместо
select Field1 ... from

Для проверки можно использовать КА со схемой, если ошибки не будет, значит ODBC не дружит с фоксом.

3. Тоже самое для выборки из фоксового курсорв в курсор, из-за "нулевого прогона".

4. Опция Nofilter заставляет фокс физически скопировать курсор в новый курсор, при её отсутствии, фокс обычно просто накладывает фильтр на исходный курсор.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
1. Если запрос действительно вынимает данные из одно буквенного курсора w, то есть вероятность, что w совпадёт с рабочей областью в которой открыт другой курсор.
- нет, там имя курсора генерируется и оно длинное. Это не "ручное" написание запроса - средствами Framework

2. Если сервер возвращает пустой курсор, то фокс может по разному интерпретировать типы данных которое ему отдаёт ODBC, и принять RECNO Int за RECNO Logical, поэтому лучше приводить явно типы данных на сервере, например:

select cast(Field1 as int) as Field1 ... from
вместо
select Field1 ... from
Для проверки можно использовать КА со схемой, если ошибки не будет, значит ODBC не дружит с фоксом.
- На этом спотыкался когда начинали с MySql. Про КА хорошая мысль, но тут не верю, а время уже потрачено

3. Тоже самое для выборки из фоксового курсорв в курсор, из-за "нулевого прогона".
- Не влетал с таким
4. Опция Nofilter заставляет фокс физически скопировать курсор в новый курсор, при её отсутствии, фокс обычно просто накладывает фильтр на исходный курсор.[/quote]
- эта опция только заставляет работать через диск, не виртуально. ReadWrite - тоже

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

Я думаю, что шансы у меня еще есть и кто-то тут у нас еще не читал тему.
Может, у MySql есть что-то свое такое для проверок и лечения.
Но repair table не помогает

Я в том проекте проверил, там 315 таблиц и только одна падала.
Я каждый раз не берегу таблицу с ошибкой - исправить как-нибудь сразу, а потом хоть потоп.
Что приятно, это не так как с DBF-ами, кот. при индексах или с мемо (cdx,fpt). Спасти еще не поздно.

В этом случае, не фильтруй до пустого, и все работает. Т.е. пока не нарвется кто-то у пользователя.
А нарвется - ошибку увидел,пропустил (грид целый), запись добавил и нам ничего не скажет. Ну гавкнуло что-то, "а это сеть виновата..."



Исправлено 3 раз(а). Последнее : Ydin, 25.02.18 18:55
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Ydin
Паша, если отремонтировал таблицу в MySql и проблема ушла, то зачем искать черную кошку в темной комнате, если ее там нет
..."

Ну-у-у, если устраивает незнание причины и метод "лечения" - хозяин-барин


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
PaulWist
если устраивает незнание причины и метод "лечения" - хозяин-барин
Не устраивает. Таблицы больной нет. Как ее создать - не знаю.
Но именно таблица MySql была причиной. У меня это 4-я случай. На 5-м напишу, ОК?
Написал проверку таблиц БД. На работе погоняю.
Спасибо!
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ydin
Есть таблица, кот. нормально читаю, если не задаю фильтр, кот. дает 0 записей!
Вероятно в этом случае сервер вкупе с ODBC драйвером отдаёт для некоторой колонки какой-то "волшебный" тип - скажем N(30) или C(0). Запихав это силами ODBC части в курсор, фокс потом уж спотыкается при попытке перелить данные в другой курсор.
Ydin
Там везде ключевое поле Recno! У меня по нему все Update'ы.
Autoincrement. Все сдвинется, так как уже Юзер что-то удалял, а тут с нуля.
MySQL работает всегда в режиме сходном с MSSQL-ным SET IDENTITY_INSERT ON. Это значит что при вставке записей в автоинкреметное поле МОЖНО прописать явное значение - документация пишет что сервер в этом случае даже сам поправит свой внутренний счётчик, чтобы последующая генерация значений не порождала дубли. Это к вопросу о починке.
Ydin
эта опция только заставляет работать через диск, не виртуально. ReadWrite - тоже
Про nofilter... Это не так. "диск" тут совершенно не при чём. Разница в том что в одном случае мы получаем USE AGAIN + SET FILTER/ORDER - т.е. по сути работаем с ТЕМ ЖЕ курсором, а в случае NOFILTER/READWRITE - мы явно говорим "сделай новый, независимый курсор" - а уж будет он на диск записан или нет - это вопрос 25-й.
Ydin
Таблицы больной нет. Как ее создать - не знаю.
Да запросто, продолжай и дальше в том же духе.
Ydin
Считаю, что нас устраивает MyISAM, а не InnoDB
Нам нужна скорость. Обращения на чтение существенно БД превалируют перед вводом.
"И она ещё не раз к тебе вернётся"
DBA нужен, понимающий... И из вариантов следует выбирать всё же тот что понадёжнее, а не быстрее на пол-копейки.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
2 ИК.
Спасибо, со всем согласен.
Igor Korolyov
в автоинкреметное поле МОЖНО прописать явное значение -
Хорошо!
А про
Цитата:
DBA понимающий
можно подробнее?


Исправлено 1 раз(а). Последнее : Ydin, 26.02.18 10:27
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Куда уж подробнее то Нужен человек хорошо разбирающийся в mysql - способный и такого рода проблемы решать (на стороне сервера, или путём замены клиентских библиотек - если дело в них), и подсказывать разработчикам как грамотно, эффективно, надёжно работать с этим сервером.


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
2 ИК.
1. nofilter и Readwrite просто сказал про диск, про "виртуальность", но, тоже, что и ты.
Паша настаивает на том, что nofilter что-то изменит. Я бы проверил, но нет "материала".
Если при этом не гавкнет, интересно, но сильно не спасет. Осадок останется (это цитата из Одесского анекдота)
2. Char(0). Там, где это раньше замечал, то обходил у себя в FrameWork'е, это не давало проблем на "типа" MEDIUMTEXT.
Просто, еще один сгенерированный Select *** From Name into curs Name
И меmo-поля живые.
И именно на этом Селекте нарвались наши при тестировании на то, что есть предмет этой темы

3.
Igor Korolyov
Нужен человек хорошо разбирающийся в mysql - способный и такого рода проблемы решать (на стороне сервера, или путём замены клиентских библиотек - если дело в них), и подсказывать разработчикам как грамотно, эффективно, надёжно работать с этим сервером.
- если б он был, не было бы этой темы

4. Хотел еще этот пункт написать, но передумал
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
nofilter дает тот же результат (про фичу).
Интересно, что запортилась снова та же таблица, но может она с какой-то копии БД.
Сама таблица содержит замечания пользователя по нашей программе. И наш ответ.
Эти 2 поля типа MEDIUMTEXT.
Но с MEDIUMTEXT мы работаем много и нормально.
И тут все цело-невредимо. Но с фильтром на пусто - проблема



Исправлено 1 раз(а). Последнее : Ydin, 21.03.18 21:36
Ratings: 0 negative/0 positive
Re: MySQL - VFP. "Порча" таблиц в MySql
Гулин Федор
Автор

Сообщений: 4640
Откуда: Минск
Дата регистрации: 24.10.2002
в MySQL есть разные типы таблиц
в некоторых есть глюки MyIsam или как то - пробегало на форумах - нав. лучше тда задать вопрос

я работаю с 5.6 версией
ENGINE=InnoDB
DEFAULT CHARSET=utf8;

но я только скрипты пишу
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика