Разные данные в базе и в приложении

Midgard90
Дата: 11.02.2015 09:09:45
Всем добрых суток!
Впервые такое, и не могу понять, в чём полтергейст:
База, локальная например с таблицей Users (FIO,post,store,pass). В приложении на С++ Builder Подключаюсь через ODBC и компонентами DataSet + DataSource выводу таблицу в DBgrid.. всё как всегда.
Делаю запрос UPDATE или INSERT или DELETE по средствам ADOquery, после чего делаю сброс DataSet, например:
Form2->ADOQuery3->Active = false;
	Form2->ADOQuery3->SQL->Clear();
	Form2->ADOQuery3->SQL->Add("UPDATE les.\042Users\042 SET \042post\042='");
	Form2->ADOQuery3->SQL->Add(DBLookupComboBox1->Text+",\042pass\042="+Edit2->Text+",\042store\042=");
	Form2->ADOQuery3->SQL->Add(DBLookupComboBox2->Text+" WHERE \042Users\042.\042FIO\042='"+strFIO+"';");
	try
		{
		Form2->ADOQuery3->ExecSQL();
		}
	catch(...)
		{
		ShowMessage("Не удалось отредактировать данные, возможно заполнены не все поля");
		}
	Form2->ADODataSet1->Active = false;
	Form2->ADODataSet1->Active = true;
	Form2->Button5Click(Form2);

В итоге что происходит: Запись фактически заносится в базу и в базе есть, но в приложении новой строки нет. Даже если закрыть его и заново открыть.
Другой вариант: в PFAdmin заношу ручками новую запись, всё заносится, запускаю приложение - все три записи статичны что бы я не делал с таблицей.. такая байда со всеми таблицами, ощущение что в определённый момент приложение взяло себе слепок и пофиг ей на базу((
Подключение ODBC проверял, пробовал делать связку ADOConnection+DataSet+DataSource - та же история.. Не понимаю.. Впервые такое..
tanglir
Дата: 11.02.2015 10:57:50
Midgard90
	Form2->ADODataSet1->Active = false;
	Form2->ADODataSet1->Active = true;
Может, там явно надо refresh какой прописать? Навряд ли дело в базе, тем более если пгадмин нормально работает; вопрос вообще скорее по билдеру, чем по пж.
Midgard90
Дата: 11.02.2015 11:36:50
Пробовал, дело даже в том что при запуске проекта, как только он первый раз активирует DataSet в таблице указываются только 3 проклятых строки, не зависимо что я делал в админе (хоть все снесу) или ещё каким образом видоизменял данные, тупо эти 3 строки))))

проверил уже другие проекты - всё работает корректно, пупо сделал запрос на пустом проекте - работает.. Но чёто переписывать заново довольно увесистый - желания вообще нет.. Думал может кто сталкивался
uranic
Дата: 11.02.2015 14:06:30
Похоже вы вставляет в unicode, а ваше приложение не умеет отображать UNICODE. PFAdmin соответсвенноу умеет.
Как в ADO и в вашей версии Delphi включить поддержку юникода не скажу, сам давно используею компоенты UNIDAC.
uranic
Дата: 11.02.2015 14:10:29
а совсем забыл, раз база у вас в UTF, то можно попробовать в приложении:
SET CLIENT_ENCODING TO 'WIN1251';

Подробнее здесь http://www.postgresql.org/docs/9.4/static/multibyte.html
Midgard90
Дата: 11.02.2015 16:58:14
Спасибо за советы, но...
База в кодировке Win-1251, ODBC в Ansi, и записываю в базу из AnsiString переменных.. в базу то из приложения записываются, а выводить не выводятся))
Скажу проще:
SELECT'ы к любой таблице статичным набором данных, вчерашнего обеда примерно
UPDATE,INSERT выполняются в приложении и в админе их видно после выполнения, но в проге снова статичные строки вчерашнего обеда))

Дело в том, что любое своё подобное приложение делал таким же точно образом, и всегда без проблем... иногда использовал FIREDAC, но не увлекался (начальство консерваторное)) ), а тут как бабка нашептала, каждую строку перепроверил...
big-trot
Дата: 13.02.2015 11:17:20
Возможно вы работаете с разными базами. Такое то же бывает и вводит в ступор.
Midgard90
Дата: 13.02.2015 14:09:30
Проблему и выяснил и не выяснил, сам не понял...
В общем что сделал: перекинул базу на другой комп, вместе с проектом, привезал ODBC, запустил - заработало, всё чётко работает.
Снёс все базы из схемы из postgre, залил заново базу, привязал ODBC, запускаю - та же канитель - проклятые 3 строки... Сидел с пивом пол часа и смотрел в монитор, пытался понять - не понял, единственная мысля - винда где-то косячит, но опять же где и как так можно косячить...

То что базу мог другую использовать исключено - схемы всего 3 и с разными таблицами и связями, для разных нужд....