| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > TQuery не сохраняет запись |
| Автор: NiJazz 3.4.2004, 18:10 | ||
| Я понимаю, что можно написать запрос, но... Такой участок кода:
Записи в таблице не появляется, хотя событие AfterPost точно срабатывает. В чём может быть дело? |
| Автор: NiJazz 4.4.2004, 08:51 |
| Может, в каких свойствах дело? Помогите, не запросы же писать!!! |
| Автор: remax 4.4.2004, 15:03 |
| Query должен содержать "живой" запрос. т.е. в запросе должны быть задействованы все обязательные поля и причем одной таблицы! Тогда, быть может, что то получится. Но лучше, написать соответствующий запрос на добавление новой записи. |
| Автор: <Spawn> 4.4.2004, 15:27 |
| Давно с Query Не работал, но перове что приходит в голову - ты Commit делаешь? |
| Автор: NiJazz 5.4.2004, 07:46 |
| [/quote]ты Commit делаешь? [quote] А что это? |
| Автор: Maverick 5.4.2004, 08:34 | ||||||
В InterBase - подтверждение выполненных изменений.... Типа Post только на уровне СУБД...
Я могу ошибаться, но где-то здесь должно фигурировать свойство поля Value.... Не могу счас проверить, но вот так примерно... FieldByName('OrgName').VALUE.AsString := edOrgName.Text; |
| Автор: Serggggg 5.4.2004, 09:54 |
| remax абсолютно прав! Если добавляешь запись, то заполнены должны быть ВСЕ поля запроса, на которые установлен Constraint (т.е. проверка на ненулевое значение). Это касается и всяких-разных ID, которые входят в таблицу. Запрос, опять же, будет работать только с параметром RequestLive=True и только в том случае, если он выбирает данные ои ОДНОЙ таблицы. |
| Автор: Akella 5.4.2004, 10:55 |
| А как же RequestLive? Должно быть в True; Запрос должень быть простым, выборка из двух таблиц не допускается. А почему ты не пользуешься компонентой TTable. Мне кажеться, что сним работать легче. |
| Автор: Serggggg 5.4.2004, 12:45 |
| dsergey, ИМХО TTable кушает побольше ресурсов. К тому же Query дает более гибкие возможности для выбора данных. Опять же - ИМХО. Я, например, пользуюсь TTable только тогда, когда не могу управиться одним запросом. |
| Автор: Akella 7.4.2004, 08:22 |
| У меня есть база телефонов на 650 тысяч записей. Запуск приложения с TQuery происходит около 10 мин и сразу видно как память и процессор нагружаются, а с TTable - почти моментально и фильтрация работает быстрее, и нет проблем с памятью и процессором. (Paradox+BDE, WinXP, Cel1700, RAM256). Интересно, а если создать алиас, то быстрее будет или нет. (а так все работает через DB.Params.Add('c:\Phone\Data\...')) |
| Автор: Serggggg 7.4.2004, 10:35 |
| dsergey, а почему не через Alias? У меня БД на Oracle! Просто, когда становится вопрос об использовании нескольких Grid'ов на одной форме, например, то я спасаюсь только запросами! Хотя... Как кому удобно... А вот Alias попробуй прописать - авось увеличит быстродействие. |