ADOQuery->Edit(); очищает все записи ???
ADOQuery1->Edit();
ADOQuery1->FieldByName("FieldName")->Value = "MyValue";
ADOQuery1->Post();
..
ADOQuery1->Edit() лишь сообшает источнику данных, что он будет изменен(запрашивает разрешение на изменение)!!
А вообще, если уже взялся за Query, тогда используй SQL запросы, либо переходи на Table, если СИКВЭЛ не знаешь и он тебе не нужен!!:D
Вот этот код:
Не создает никаких записей.
Чтобы добавить запись используются методы:
или
Кидай кусок своего кода!!
ADOQueryPrimaryPath->DataSet->Edit();
ADOQueryPrimaryPath->Value = Edit1->Text;
ADOQueryPrimaryPath->DataSet->Post();
создает запись и в поле Path текст Edit
проверил раз 10, даже проект другой создал тоже самое
TADOQuery уже является потомком TDataSet, посему реализует все методы чтения, изменения и навигации по набору данных.
А свойства DataSet не имеет :(
ADOQueryPrimaryPath->DataSet->Edit();
ADOQueryPrimaryPath->Value = Edit1->Text;
ADOQueryPrimaryPath->DataSet->Post();
создает запись и в поле Path текст Edit
проверил раз 10, даже проект другой создал тоже самое
Это вообще что? Впервые вижу такое :)
пиши примерно так:
ADOQueryPrimaryPath->FieldByName("aaaa")->AsString = Edit1->Text;
ADOQueryPrimaryPath->Post();
"aaaa" - название того поля, значение которого ты хочешь поменять
..
ADOQueryPrimaryPath->Value = Edit1->Text;
..
[QUOTE=desivers]
..
ADOQueryPrimaryPath->Value = Edit1->Text;
..
[/QUOTE]
Чем?
[QUOTE=desivers]ADOQuery->Edit(); очищает все записи кроме счетчика, как мне изменить в записи только одно поле, а не записывать все куда то а потом вставлять и только ради одного изменения.[/QUOTE]
Текст запроса в студию! Может быть, у тебя не Updatable Query.
Ещё, чисто ради интереса: какая СУБД? Для многих есть компоненты прямого доступа, заточенные специально под конкретную СУБД. В большинстве случаев такие компоненты использовать предпочтительнее, нежели "всеядную" ADO.
Мдя... Насколько с Oracle всё проще...
Чем?
Глубоким смыслом..
..
Может быть, у тебя не Updatable Query.
..
Если бы было так, то на строке:
У него бы вылетал Exception, вроде 'Can't edit non-updatable dataset'(точно не помню).
..
В большинстве случаев такие компоненты использовать предпочтительнее, нежели "всеядную" ADO.
..
Возможно, конечно и так - спорить не буду, т.к. сам всегда использую ADO, но у всех же нормально работает, а у него нет - чудеса!!:D
У него бы вылетал Exception, вроде 'Can't edit non-updatable dataset'(точно не помню).
Возможно, конечно и так - спорить не буду, т.к. сам всегда использую ADO, но у всех же нормально работает, а у него нет - чудеса!!:D
Вообще-то да, но ведь разные случаи бывают. Может, у человека где-нибудь написано что-то вроде
{
ADOQueryPrimaryPath->Edit();
// ...
}
catch(...)
{
; // do nothing
}
В Oracle PL/SQL начинающие программеры такие ляпы иногда допускают.
Кстати ADOQueryPrimaryPath это обьект на поле Path в ADOQueryPrimary тоесть эти два кода одинаковы только первый работает на 10мл сек быстрее
ADOQueryPrimaryPath->DataSet->Edit();
ADOQueryPrimaryPath->Value = Edit1->Text;
ADOQueryPrimaryPath->DataSet->Post();
ADOQueryPrimary->Edit();
ADOQueryPrimary->FieldByName("Path")->AsString = Edit1->Text;
ADOQueryPrimary->Post();