Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа запросов из программы. MySQL, ошибок нет, но запрос игнорируется 
V
    Опции темы
Lim4
Дата 30.12.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не под ковром
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 4.7.2008

Репутация: нет
Всего: 7



Подскажите пожалуйста возможную причину невыполнения некоторых запросов. Подсоединение делалось по этому рецепту.  Все манипуляции с таблицей 'prazdniki' у меня работают. Вот они:
Код

   if (Con){
         AnsiString  query4ist_Prazd = "truncate table `my1_db`.`prazdniki`;";
         mysql_real_query(Con,query4ist_Prazd.c_str(),query4ist_Prazd.Length());   // 4istim tablicu prazdnikov

   for(int i=0; i<total_days + 1; i++){
         AnsiString  queryProm = "INSERT INTO `my1_db`.`prazdniki` (`date_p`) VALUES ('"+ IncDay(dat1,i)+"'); "; 
         mysql_real_query(Con,queryProm.c_str(),queryProm.Length());          }
    for(int j=0; j<Memo1->Lines->Count; j++ ){
         AnsiString  queryUpdPrazdn = "UPDATE  `my1_db`.`prazdniki` SET `priznak`= '1' WHERE `prazdniki`.`date_p`='" +Memo1->Lines->Strings[j]+ "';";
         mysql_real_query(Con,queryUpdPrazdn.c_str(),queryUpdPrazdn.Length());
    }
 }


А похожие с таблицей 'kurs' - нет. Только выполняется(!) очистка таблицы, а другие запросы на вставку и обновление не выполняются, хотя  цикл проходит, что доказывает выдача сообщений. Пробовала писать полный путь к полям, тоже не помогает. 
Код

 if (Con){
       
      AnsiString  query4ist_Kurs = "truncate table `my1_db`.`kurs`;";
      mysql_real_query(Con,query4ist_Kurs.c_str(),query4ist_Kurs.Length());   // 4istim tablicu kursov valyut

   for(int i = 1; i<StrGrKurs->RowCount; i++){
      AnsiString  queryPromK = "INSERT INTO `my1_db`.`kurs` (`dayv`) VALUES (' "+ StrGrKurs->Cells[0][i] +" '); "; 
      mysql_real_query(Con,queryPromK.c_str(),queryPromK.Length());

        AnsiString  queryKurs = "INSERT INTO  `my1_db`.`kurs` (`griven_za`) VALUES (' "+ StrGrKurs->Cells[0][i] +" ');";
        mysql_real_query(Con,queryKurs.c_str(),queryKurs.Length());
       // ShowMessage("Ya zdes'!");
                                             }
        AnsiString  queryKurss = "UPDATE  `my1_db`.`kurs`  SET `griven_za_dollar` = `griven_za`/`kol` ;";
        mysql_real_query(Con,queryKurss.c_str(),queryKurss.Length());
          }




Если вставлять не стринггриды, а любые цифры, тоже не делает. В базе чистая таблица :(.... Почему же программа её чистит, а вставлять ну ничего не хочет? smile 

PM MAIL   Вверх
Mpak
Дата 30.12.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Никогда не использовал этот метдо (если честно никогда не получалось прикрутить мускуль к борману smile)
Попробую лишь предположить:
Цитата(Lim4 @  30.12.2008,  19:56 Найти цитируемый пост)
INSERT INTO `my1_db`.`kurs` (`dayv`) VALUES (' "+ StrGrKurs->Cells[0][i] +" '); 

Может проблема в лишнем первом пробеле значения в ячейку `dayv`?

P.S. StrGrKurs - это TStringGrid?

Это сообщение отредактировал(а) Mpak - 30.12.2008, 19:21


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
mrbrooks
Дата 31.12.2008, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Lim4, а отчего ты не хочешь использовать инструментарий поставляемый в самом Бормане, либо сторонними разработчиками. Работа с API мускула дело геморное и достаточно не благодарное.
PM MAIL   Вверх
Бонифаций
Дата 1.1.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



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

Вместо 
Код

 mysql_real_query(Con,queryPromK.c_str(),queryPromK.Length());


должно быьт что то типа
Код

if (mysql_real_query(Con,queryPromK.c_str(),queryPromK.Length()) != 0) {
  ShowMessage(mysql_error(Con));
}





--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Lim4
Дата 5.1.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не под ковром
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 4.7.2008

Репутация: нет
Всего: 7



 smile  Ваши советы оказались полезны, спасибо. Во-первых, действительно, пробелы там лишние, а во-вторых, кааааааак посыпались ошибки запросов smile , когда я поставила, чтобы они выводились. Запросы не соответствовали настройкам полей таблицы.  mrbrooks,  не то чтобы "не хочу", просто не было практики, какой способ первый нашла, таким и пользуюсь.  smile    Всё исправила, всё работает. Виват, Винград!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.