Перейти к содержанию
СофтФорум - всё о компьютерах и не только

delphi+mysql


Рекомендуемые сообщения

для доступа к mysql (3.2) использую dbxpress (delphi 7)

при выполнения запроса типа

select sum(aaa) as bbb from tbl where aaa=15

вылезает сообщение [0x0002]: Insufficient Memory for Operation

так же при сипользовании другой версии (midas.dll) библиотеки для доступа к mysql вылезало немного

другое сообщение [0x0003]: Invalid Field Type

в таблице всего одна запись

при использовании count вместо sum - все работает нормально

пробовал использовать ado

при выполнении вышенаписанного запроса вылазит

"Произошла ошибка во время выполнения многошаговой операции. проверьте значения всех состояний"

если выполнять запрос через консоль mysql то все нормально выполняется

туплю уже пару дней не могу понять в чем дело. Вроде простейший запрос а глючит.

Ссылка на комментарий
Поделиться на другие сайты

@nusya24, поле aaa какого типа?

тип int

пробовал decimal, smallint - та же фигня

зато вот что удалось выяснить - если поменять тип поля на char :blink:

то функция SUM начинает работать - бред

сразу встал еще один вопрос - как сменить тип возвращаемых данных в операторе SELECT, т.е. чтобы не менять в самой базе. Этого я не нашел, поэтому использовал CONCAT, т.к. он возвращает строковые данные

select concat(sum(aaa)) as bbb from tbl where aaa=15

и почему такая проблема с типом int?

Изменено пользователем nusya24
Ссылка на комментарий
Поделиться на другие сайты

А если в BDE Администраторе System->INIT->SHAREDMEMSIZE установить в 4096?

а причем тут это, я вроде как с mysql работаю через dbxpres

а BDE с ними, как я знаю, никак не связан

??????????????

Ссылка на комментарий
Поделиться на другие сайты

а причем тут это, я вроде как с mysql работаю через dbxpres

Прошу прощения - упустила из вида... Ошибка была знакомая, пыталась вспомнить, что я делала, когда возникала у меня...

Ссылка на комментарий
Поделиться на другие сайты

Похоже всё же aaa содержит не целый тип, а текст '15'. Попробуй его умножить или другую арифметику, если будет ругаться на тип - так и есть.

Тогда используй CONVERT.

BEGIN TRY   {обычно}END TRY BEGIN CATCH {здесь с CONVERT}END CATCH 
Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...