Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

Не выходит вставить!   Найти похожие ветки 

 
sniper   (2003-03-12 18:54) [0]

Ув. Знатоки, подскажите пожалуйста в чем проблема. Я хочу добавить строку в таблицу, используя следующий код:
Table1.Open;
Table1.Edit;
Table1.InsertRecord([nil,"stroka"]);
Table1.Post;
Table1.Close;

А он мне выдает: DataSet not in Edit or insert mode.
Что делать?


 
Val   (2003-03-12 18:59) [1]

F1
TDataSet.InsertRecord
Inserts a new, populated record to the dataset and posts it to the database.
так вот, и вставляет и постит, не нужны всякие edit, post..


 
sniper   (2003-03-12 19:06) [2]

Че-то я не понял. Напишите пожалуйста кусок кода, для вставки строки. ЗАранее благодарен.


 
Desdechado   (2003-03-12 19:53) [3]

добавлять записи, то можно 2 способами:
1. insert; fields[0]:=..; post;
2. insertrecord( [..,..] ); - здесь не требуется никаких edit-post

а edit - это для редактирования существующей записи


 
Ipx   (2003-03-12 20:17) [4]

Можно попробовать
Table1.Append;
а только затем Insert


 
Val   (2003-03-13 11:02) [5]

>Ipx © (12.03.03 20:17)
зачем???


 
Anatoly Podgoretsky   (2003-03-13 11:09) [6]

Ipx © (12.03.03 20:17)
А это еще зачем, что бы масло было маслянным?


 
Соловьев   (2003-03-13 11:30) [7]

Table1.Open;
Table1.Edit;
Table1.FieldByName("Stroka").Value := NULL;
Table1.Post;
Table1.Close; // а зачем закрывать? хотя все от задачи...


 
Val   (2003-03-13 13:28) [8]

>Соловьев © (13.03.03 11:30)
не путайте человека.автор хочет добавить, а не редактировать запись.


 
Соловьев   (2003-03-13 13:38) [9]

2 Val © (13.03.03 13:28
тогда
...
Table.Insert;
...


 
Ipx   (2003-03-13 18:58) [10]

В MSAccess
Очень долгое время работаю таким образом без всяких проблем
Table1.Open;
Table1.Active:= True;
Table1.Append;
Table1.FieldByName("Имя поля").AsТип_данных:= Что надо;
...
Table1.FieldByName("Имя поля").AsТип_данных:= Что надо;
Table1.Post;

Не понимаю где затыки?


 
Val   (2003-03-13 19:11) [11]

>Ipx © (13.03.03 18:58)
вам говорили про неверность
Table1.Append;
а только затем Insert

кусок же от Ipx © (13.03.03 18:58)
почти нормален, если не считать:
Table1.Open;
Table1.Active:= True;
зачем два раза одно и тоже???
впрочем как и в прошлом случае - програмистское заикание? :)


 
Dred2k   (2003-03-13 19:32) [12]

Не, ну такой травы мне не достать...
Сначала автор вопроса спрашивает, как ему добавить запись, но при этом использует инсерт. Потом народ начинает кидать то аппенд, то инсерт. Потом народ начинает их комбинировать в одной операции (для надежности, наверное). Потом начинают приводить примеры на базе VCL и радоваться, что работает везде (хм, VCL очень удивилась бы, если бы не сработало)...
;))
Не сочтите за наезд, но все это слишком круто.
F1 ПРИДУМАНО НЕ ДЛЯ МАСТЕРОВ?

1. Добавление в конец таблицы.


This example appends a new record to a table when the user clicks a button. The two fields ALPHANUMERIC and INTEGER are filled from the contents of two edit controls.

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldValues["ALPHANUMERIC"] := Edit1.text;
Table1.FieldValues["INTEGER"] := StrToInt(Edit2.text);
Table1.Post;
end;
<\code>

2. Вставка записи перед текущей в данный момент.


This example uses the BeforeInsert event to do data validation; if the StrToInt function raises an exception, the edit control’s contents are set to a valid value so the assignment to the INTEGER field in the table will succeed.

procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);

begin
try
{Make sure edit field can be converted to integer --
will throw an exception if it can’t }
StrToInt(Edit1.Text);
except
Edit1.Text := "0";
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Insert;
Table1.FieldByName("QUANTITY").AsInteger := StrToInt(Edit1.Text);
Table1.Post;
end;
<\code>

Единственное ;), что скажу в конце:
1. Простите за большой пост по пустяку.
2. Ну читайте хелп!
3. Не берите пример с меня - бурные эмоции порой вредят здоровью... Хотя иногда - и делают жизнь интереснее.
;)


 
Ipx   (2003-03-13 21:51) [13]

Периодически (не регулярно) просматриваю форум
2 Val © (13.03.03 19:11)
Возможно на счет Open это и верно, хотя не уверен
Остальное нормально.
Хотелось бы уточниться у автора вопроса, что за объект у него Table1.
А у Dred2k © (13.03.03 19:32), который слегка возмущается, не совсем понятно в какие поля он пишет???


 
Dred2k   (2003-03-13 22:05) [14]

2 Ipx

> А у Dred2k © (13.03.03 19:32), который слегка возмущается,
> не совсем понятно в какие поля он пишет???

Веселые люди, блин. Аж грустно...
Delphi->IDE->Editor->набираем->[I][N][S][E][R][T]->курсор к [I]->[Ctrl+F1].
И читаем,читаем,читаем,читаем,читаем,читаем,читаем,читаем ....
И еще - ДУМАЕМ. Причем полезно, чтоб всегда.
:(

(Для личного состава гвардейской бронетанковой дивизии СД имени клары цеткин и монгольского ленина вместе с комсомолом):
в хелпе люди пишут примеры. И тоже для людей...


 
Ipx   (2003-03-13 22:10) [15]

2 Dred2k © (13.03.03 22:05)
То, что пишут в ХЕЛПЕ иногда не мешает проверить на личном опыте. Так хотелось бы уточниться, куда мы все-таки пишем (FieldName или хотя бы номер поля в таблице)?
Удачи при изучении ХЕЛПА


 
Dred2k   (2003-03-13 22:28) [16]

2 Ipx

Для примера 1 (Append): в поля некоей таблицы, которые имеют наименования "ALPHANUMERIC" и "INTEGER" соответственно (не пугайся - INTEGER здесь всего лишь название поля, поверь - так тоже можно).
Для примера 2 (Insert): в поле некоей таблицы, которое имеет наименование "QUANTITY".
Механизмы доступа FieldValues и FieldByName абсолютно равнозначны (и не надо про скорость - это для взрослых дядек).
И еще. Потрать жизнь, но не найдешь в ней точного примера из твоей. Вот сопоставить и применить - дело здравое.

Чуть не забыл! Хочу поздравить Вас с присвоением очередного звания майор (ну нет в бронетанковых бригадах генералов, прости) и переводом на новую сверхтяжелую модель боевой машины с заклеенным дулом.
Привет ким-чен-иру.



 
Ipx   (2003-03-13 22:43) [17]

4 Dred2k © (13.03.03 22:28)
Спасибо с поздравлением, почти согласился,а почему в инфе о себе ничего не сообщаешь?
И тем не менее у меня такая функция (в MSAccess) работает более 3-х лет. Я имеюю в виду не только себя, а и клиентов , у которых работает программный комплекс (замечу - сетевой).


 
Dred2k   (2003-03-13 22:55) [18]

2 Ipx

> а почему в инфе о себе ничего не сообщаешь?
Зачем? Это абсолютно не важно.
1976, 1.81 м, люблю воллейбол. Компы - не в счет. Этого хватит.
В Сети все проще, не правда ли ?...

> И тем не менее у меня такая функция (в MSAccess)
> работает более 3-х лет. Я имеюю в виду не только себя,
> а и клиентов , у которых работает программный
> комплекс (замечу - сетевой).

Круто все, согласен. Веские слова сотрясают этот мир. Сам только в них раньше и верил... Как и все нормальные 8-летние дети, пожалуй.
Только вот пойми - из твоих уст они звучат как и в славном начальношкольном прошлом. И звучать они будут похлеще болванок, отлетающих от брони твоего нового сверхтяжелого танка (шутка юмора), во всяком случае, до тех пор, пока ты в коде ты пишешь Table1.Active := True после Table1.Open ........
Такова уж жизнь. Не обижайся и не злись.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.011 c
1-6576
drAlban
2003-03-21 22:48
2003.04.03
Как получить хэндл файла?


1-6505
Roki
2003-03-24 17:15
2003.04.03
Каким компонентом вводят время в формате чч:мм?


1-6606
Guru
2003-03-22 13:10
2003.04.03
Клиент/серверное приложение с авторизацией


14-6732
SuperMagic
2003-03-16 13:40
2003.04.03
Кривые второго порядка


1-6471
Фагот
2003-03-24 13:17
2003.04.03
Таблица символов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский