Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Ошибка при запуске приложения на некоторых Win XP


Автор: lipatoff2011 23.12.2012, 12:29
Для подключения к БД, которая находится на сервере MySql, использую SQLConnection и SimpleDataSet.
На большинстве машин все работает замечательно (пробовал запускать на Win 7 и ХР).
Но! На некоторых сборках Window XP при запуске вылетает ошибка:
http://cs317016.userapi.com/v317016257/5bd8/P57oU_7Y4gc.jpg
Данное поле в базе данных имеет тим TinyInt

Автор: DarkProg 23.12.2012, 12:31
Эммм... Случайно Connected в DesignTime не установлен для подключения?

Автор: lipatoff2011 23.12.2012, 12:52
Да. Я сразу поставил Connected=True при создании приложения...

Автор: DarkProg 23.12.2012, 13:38
Цитата(lipatoff2011 @  23.12.2012,  13:52 Найти цитируемый пост)
Да. Я сразу поставил Connected=True при создании приложения... 

Вот и проблема. Короче, я всего не знаю и в исходниках копаться лень, но если Connected=True ещё в дизайнере, то при каких-то чудесных магических обстоятельствах вылетают непонятные ошибки. Если подключение поставить в False в дизайнере и подключаться при создании, скажем, главной формы, то проблем не возникает... проверял...

P.S. Мне кажется что это наследие ещё базовых классов...

Автор: Vas 23.12.2012, 15:19
А библиотеку libmysql.dll точно одинаковых версий на всех машинах. 

P.S.  Я бы на вашем месте переименовал бы поля используя латинский алфавит, может быть косяк и из-за русского шрифта.

Автор: Akella 23.12.2012, 17:20
это что щас за программисты пошли?
даже сообщить об ошибке не могут
я в шоке
куда катится мир smile

Добавлено через 1 минуту и 45 секунд
А "Field Уст. not found" ничего не говорит гиганту мысли?
Воспользуйся переводчком, если не знаешь английский.

Автор: lipatoff2011 24.12.2012, 06:19
Я не программист, я только учусь =D
Я понимаю, что он сообщает, что поле не найдено.. Но на большинстве машин он его "находит", и отлично работает!

Автор: Akella 24.12.2012, 11:13
*достаёт свой хрустальный шар*

Вероятно, что на меньшенстве машин структура баз не такая, как на большинстве. Другими словами - структура баз разная.

*прячет хрустальный шар*

Автор: Vas 24.12.2012, 12:42
Цитата(Akella @  24.12.2012,  11:13 Найти цитируемый пост)
Вероятно, что на меньшенстве машин структура баз не такая, как на большинстве. Другими словами - структура баз разная.

Гы, если так, то нафига использовать MySQL, уж тогда что нибудь из локальных БД, ну или на крайняк embedded версии юзать. 

Цитата(lipatoff2011 @  23.12.2012,  12:29 Найти цитируемый пост)
Для подключения к БД, которая находится на сервере MySql,

Вроде топикстартер явно пишет, что сервер smile 

Автор: lipatoff2011 24.12.2012, 21:42
подключение в режиме загрузки приложения не помогло..

Автор: Vas 25.12.2012, 07:36
Короче, раз лениво тебе переименовывать поля. То попробуй в запросе их хоть в обрамление взять типа `Уст.` и посмотреть, а то так гадать можно вечно. 

Автор: DYUMON 25.12.2012, 17:24
всегда отключай свойство connected перед компиляцией. включай его в коде лучше. на разных компах получаются разные тайминги подключения от этого и программа не может получить вовремя данные . отсюда и пропавшии поля

Автор: lipatoff2011 25.12.2012, 18:55
по поводу поля, оно у меня называется в базе 'isp', 
а 'Уст.' - это просто DisplayLabel.

Подключение во время компиляции не помогает =(

Автор: xackera 26.12.2012, 09:57
а в настройках локали (региональные настройки) смотрели? может на тех машинах нет понимания русского языка?

Автор: Akella 26.12.2012, 13:02
Цитата(lipatoff2011 @ 24.12.2012,  21:42)
подключение в режиме загрузки приложения не помогло..

Сам-то понял, что написал?

Добавлено через 1 минуту и 16 секунд
Цитата(lipatoff2011 @  25.12.2012,  18:55 Найти цитируемый пост)
по поводу поля, оно у меня называется в базе 'isp', 

Может в SQL запросе его нет?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)