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

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?

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

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

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

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

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

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

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

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

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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