Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Добавить запить в БД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.045 c
14-1133276305
Nic
2005-11-29 17:58
2005.12.25
Нахождение в академии - хорошо или нет?


4-1130232111
ZEWS
2005-10-25 13:21
2005.12.25
Как мне заменить Scrollbar ы в TWebBrowser на свои?


1-1133267416
AlexBurton
2005-11-29 15:30
2005.12.25
Необходимо защитить или зашифровать число от его изменения


14-1133445740
Vyacheslav
2005-12-01 17:02
2005.12.25
Excel - Linux


9-1122435799
olorint
2005-07-27 07:43
2005.12.25
Модальные формы и OpenGL