Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
ВнизДобавить запить в БД Найти похожие ветки
← →
Daria (2005-12-06 16:13) [0]Спасибо всем, кто помог с моей предыдущей проблемой!!!
Теперь есть еще одна.
В database desktop есть таблица. как добавить в какой-нибудь столбец запись??? Раньше я это делала через dbnavigator. а вот как это сделать программно (в смысле что написать надо)????
← →
alex_*** © (2005-12-06 16:15) [1]зпись добавляется в таблицу, а не в столбец. Надо вызвать метод Insert у Table1
← →
Daria (2005-12-06 16:20) [2]ну мне нужно в по очереди добавить запись в первый столбец, потом во второй и т.п. там что-то типа цикла. это из строки читала слово между разделителями, вот его надо добавить.... как?
← →
Sergey13 © (2005-12-06 16:20) [3]http://delphimaster.net/view/3-1133777994/
[14] Daria (05.12.05 14:08)
я же сказала, что со всем остальным справлюсь. мы в институте писали всякие программы, только работали уже с таблицами paradox, делали их в database desktop. так что с того момента, как загружусь, я справлюсь.... главное - загрузить
Выходит - врала.
Кто еще аську не просил/не давал? Навались. 8-)
← →
Daria (2005-12-06 16:21) [4]:))) ну хватит!!! я могу дальше работать. а вот это относится к вопросу как туда загрузить... :)))
← →
Виталий Панасенко (2005-12-06 16:32) [5]У тебя ж, вроди, Архангельский есть под рукой ?
← →
msguns © (2005-12-06 16:33) [6]Дашка, а ну за учебники, лентяйка ! Хотя бы начни с TDataSet, лгунишка ;))
← →
alex_*** © (2005-12-06 16:39) [7]шалунишка :)
← →
alex_*** © (2005-12-06 16:40) [8]Даш, посмотри примеры в папке дельфей, в самом деле, или статью нарой на DelphiKingdom или здесь
← →
Плохиш © (2005-12-06 16:42) [9]А на свидание девушку так никто и не приглашает ;-)
← →
Megabyte © (2005-12-06 16:43) [10]Пущай сразу SQL рюхает, чтобы соответственно добавлять записи с помощью него. %)
← →
Daria (2005-12-06 16:47) [11]тэк-с, молодые люди, вы меня, пжлста, SQL и прочим не пугайте...
Tdataset видела. какой командов в столбец че-нить записать?
← →
Плохиш © (2005-12-06 16:51) [12]Kirche - Küche - Kinder
← →
Anatoly Podgoretsky © (2005-12-06 16:56) [13]Daria (06.12.05 16:47) [11]
Дарья тебе же сказали нельзя в столбец добавить запись, можно добавить в строку, а делается это или с помощью запроса INSERT INTO или методом INSERT у датасет.
← →
msguns © (2005-12-06 16:57) [14]>Daria (06.12.05 16:47) [11]
>Tdataset видела. какой командов в столбец че-нить записать?
Ай да девчёнка, ай да проказница !
Вы, пачаны, как хотите, а я просто очарован. И в ногах. Типа валяюсь. Ну просто УБОЙНАЯ наивность и простота !
Писать в СТОЛБЕЦ !?!?!?!?
Tdataset ВИДЕЛА !!!!!!!!
И какой он, позвольте полюбопытстовать ? Как выглядит ? Сколько глаз, зубьев, крылов, командов ?
Врешь ты, Дарья батьковна, или, как говорят "заливаешь". О том, что "писали", "работали", "делали".. Кто-то, мож, и делал, писал.. Но не ты, эге ж ?
А теперь, когда петух пониже пояса приговорил, так сразу в крик ? Начальник там, то да се... Так и поверили мы, лоходроны. Лаба, небось, горит. Или курсач припер..
← →
Daria (2005-12-06 17:08) [15]msguns, я уже диплом пишу, все курсачи и лабы давно сдала. а дельфи мы проходили только на 3-ем курсе. писали какой-то там АРМ (кстати, сама). т.к. после этого с дельфями не связывалась, то все успешно и забыла...
а dataset в help смотрела, читала и пр. и пр.
← →
alex_*** © (2005-12-06 17:16) [16]сформулируй вопрос. Как вставить запись? ->
Table1.Append();
Table1.FieldByName("value").AsString := "test";
Table1.Post();
вариант для вставки записи. еще вопросы?
← →
Daria (2005-12-06 17:23) [17]alex_*** огромное такое человеческое спасибо!!!!! вот теперь все работает
← →
alex_*** © (2005-12-06 17:27) [18]не зарекайся. импорт заработал?
← →
myor © (2005-12-06 17:29) [19][12] натюрлих
[14] сам виноват, почитай свой же пост нумбер 58 в предыдущей ветке :-)
лаба, курсач - берите выше - диплом! :-)
[16], [17] - ...но если очень хочется, то можно (ц) :-)
огромное такое человеческое спасибо, Daria, за хорошее настроение.
и хотя заповедь программиста гласит: "работает - не трогай!", попробуйте все таки вставлять записи построчно:
table1.insert+[f1]
← →
Daria (2005-12-06 17:29) [20]ну, по крайней мере кусочек теперь работает....какой импорт?
← →
msguns © (2005-12-06 17:29) [21]В БД нет ни столбцов (есть нечто отдаленно напоминающее "столбцы" - это домены, но это нечто другое !), ни ячеек, ни колонок, ни даже строк. Там есть таблицы, состоящие из записей, каждая из которых включает в себя несколько полей, имеющих определенный тип данных.
Поэтому редактировать в БД можно только заданные поля в заданных записях заданных таблиц.
Редактирование бывает трех типов: добавление (Insert), изменение (update) и удаление (delete).
Редактирование делается двумя способами:
1. На сервере (с помощью всяких прибамбасов типа триггеров, хранимых процедур и т.д., "знающих" ЧТО и ГДЕ изменять при ОПРЕДЕЛЕННЫХ УСЛОВИЯХ) по команде с "клиента"
2. На клиенте с помощью запроса (ов), точно указывающих какик записи в каких таблицах подлежать изменению-удалению-добавлению. "Сервер" сам ничего не "додумывает", "тупо" следуя заданной в SQL-запросе инструкции.
На "клиенте" (у тебя именно такой случай, ибо для "локальных" БД, коей является "твой" парадокс или дибэйз, "сервера" нет и быть не может) можно менять данные в БД также двояко:
1. С помощью единственного объекта доступа TXXDataSet, используя методы:
а) для добавления: Insert
б) изменения: Edit
в) удаления: Delete
В первых двух случаях после выдачи указанных "команд" НИКАКИЕ ДАННЫЕ В ТАБЛИЦЕ ИЗМЕНЕНЫ НЕ БУДУТ,- набор данных (НД) будет лишь "подготовлен" для того, чтобы послать изменения в таблицу БД. Поля текущей записи НД следует заполнить "ручками" и после этого выдать "команду" Post. Но и после этого еще не гарантия, что изменения "осядут" в физической БД. Для уверенности в этом надо выдать "команду" ApplyUpdates либо закрыть НД "командой" Close и вновь открыть.
Пример изменения записи:With Table1 do
begin
Edit;
FieldByName("FIO").AsString := "Дашка Батьковна Лопухина-Сачкова";
FieldByName("COURSE").AsString := "Типа диплом";
FieldByName("TESTDATE").AsDateTime := StrToDate("06.12.05");
FieldByName("TESTSCORE").AsInteger := 2;
FieldByName("TESTFLAG").AsBoolean := false;
Post;
ApplyUpdates;
end;
← →
Daria (2005-12-06 17:34) [22]большое спасибо за содержательную лекцию! :)
но, кстати, к диплому я еще не приступала. это действительно для работы.
← →
msguns © (2005-12-06 17:46) [23](продолжение "лекции")
Этот метод помимо плюсов (простота реализации, "приспособленность" "визуализирующих" контролов-гридов под редактирование непосредственно в видимой таблице (как в Экселе)), имеет и минусы. В частности, нельзя редактировать СЛОЖНЫЙ НД, полученный из нескольких таблиц либо содержащий не все поля исходной таблицы либо "хитро" упорядоченный.
Для решения такой проблемы сушествуют разные прикрутки и отвертки типа TUpdateObject, TUpdateSQL и т.д., которые к тому же и имеют четкую "ориентацию" на достаточно узкий круг объектов (компонент) доступа. Но это - сложный путь и для Даш непригодный ;)
Поэтому есть второй способ изменений в БД
2. Разделение отображение и изменения данных.
При этом способе отображаемые данные получаются на "клиенте" с помощью только ЧИТАЮЩЕГО запроса (например TQuery) и поэтому нет никаких ограничений в получении таких данных (хоть из все таблиц БД сразу, хотя в большинстве случаев такой запрос либо нереален, либо будет содержать кашу). Для редактирования служат другие обекты доступа (тот же класс TQuery с св-вом SQL = "INSERT", "DELETE", "UPDATE"), формировать которые можно "на ходу" в коде (динамическое использование объектов доступа к БД), либо статическое ("накидать" компонент в дизайне и настроить их куак надо).
При таком подходе интерфейс редактирования БД следует разработать самому, вместе с "кнопками", проверками корректности и т.д. Зато редактировать можно сразу НЕСКОЛЬКО таблиц и даже использовать сложные, многоступенчатые алгоритмы коррекции целых фрагментов базы данных. Примеры такого метода работы приводить не буду, т.к. они не могут обойтись без "чудища огромно,обло,озорно, стозевно и лайяй", то бишь SQL, в котором ты, похоже, ни в узду, ни в красную армию ;))
← →
Daria (2005-12-06 18:02) [24]в общем и целом, ты прав.... ни в узду.... но ничего, всему учатся... и этому научусь. блин, теперь на работе жизнь приперла к стенке, придется выучить. спасибо!
← →
Megabyte © (2005-12-06 18:10) [25]
> msguns ©
Тебе бы книжки писать для начинающих. %)
← →
Daria (2005-12-06 18:11) [26]и еще один вопрос на последок: хочу, чтобы при запуске программы, моя база обнулялась (т.е. все, что там было раньше стиралось). как это сделать?
← →
Gala_l (2005-12-06 19:43) [27]Vosmi komponent zaprosa i v svoistve SQL napishi:
Delete from table1
ili kin na formu komponent tablizi, tam toze est svoistvo Delete.
Ja predpochitaju rabotat cherez zaprosi SQL, a ne naprjamuju s tablizami.
V Rossii kucha literaturi po Delphi i SQL, tak chto ne perezivai. Ja Delphi toze tolko nemnogo v institute uchila (let 10 nazad), a ponadobilos, tak vspominaju. Knizki chitaju
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.013 c