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

Вниз

Помогите с базой данны)(   Найти похожие ветки 

 
psyBNC ©   (2006-01-14 03:24) [0]

Пишу базу данных!
Создал тоблицу с полями 1,2,3,4,5(имена просто что б легче приставить).
Поле 1,2,3 заполняется из dbcombobox и dbedit и должно быть одинаково во всех строках таблици.
Поля 4,5 заполняются прям в таблице!
например

DBEdit [дата 00.00.00]
DBEdit [время 00.00]
DBComboBox [отдел 00]

|______ товар________|_______цена________|
|____картофель______|_______2,50_________|
|_____помидоры______|_______4,60_________|

во всех строках должна сохранится дата, время, отдел

вся таблица выгледит так:

|___Дата___|__время__|отдел|______ товар________|_______цена________|
|12.12.2006_|__12.00__|__3__|____картофель______|_______2,50_________|
|12.12.2006_|__12.00__|__3__|_____помидоры______|_______4,60_________|

Вот вроде обьеснил, теперь проблемка?
поля 1,2,3 после заполнения и перехода к самой таблице к испровлениям недоступны, но после того как добовляешь новую строку данные в dbedit и dbcombobox проподают, надо зделать чтоб после вода они остовались там сегда и не убирались когда создаёшь новую строку в таблице, соответствено ето данные должны прописываться в каждой строке таблици!
Я что уже не пробывал, помогите разобраться!


 
psyBNC ©   (2006-01-14 06:03) [1]

И ещё вопрос??
При сохранении таблици в файл, он переписывает данные, а как можно добавить данные к уже находящимся там данным??


 
Rem ©   (2006-01-14 09:11) [2]

Теперь еще об используемом движке БД пару слов - и можно начинать советовать. Или (в контексте "При сохранении таблици в файл") здесь используется некое другое, "оригинальное" хранилище?


 
psyBNC ©   (2006-01-14 09:27) [3]

Dbase
Нет всё просто, сохраняем в файл .xml


 
psyBNC ©   (2006-01-14 12:25) [4]

?


 
YurikGL ©   (2006-01-14 13:02) [5]


> надо зделать чтоб после вода они остовались там сегда и
> не убирались когда создаёшь новую строку в таблице, соответствено
> ето данные должны прописываться в каждой строке таблици!
>

Делаешь глобальные переменные типа
p1, p2...

В beforeInsert твоего table сохраняешь в них значения тех полей, которые тебе нужно чтобы "прописываться в каждой строке таблици"
p1:=table.fieldByName("  ").value;
..
В AfterInsetInsert твоего table вытаскиваешь из переменных p1, p2 сохраненные значения и подставляешь их в поля вновь созданной записи
table.fieldByName("  ").value:=p1;
..


 
psyBNC ©   (2006-01-14 15:39) [6]

При сохранении таблици в файл, он переписывает данные, а как можно добавить данные к уже находящимся там данным??

Dbase

file.xml


 
psyBNC ©   (2006-01-14 15:53) [7]

Всё зделал как сказал!
но выдаёт ошибку!

procedure TForm1.ClientDataSet1BeforeInsert(DataSet: TDataSet);
begin
p1:=ClientDataSet1.FieldByName("1").Value;
p2:=ClientDataSet1.FieldByName("2").Value;
p3:=ClientDataSet1.FieldByName("3").Value;
p4:=ClientDataSet1.FieldByName("4").Value;
p5:=ClientDataSet1.FieldByName("5").Value;
p6:=ClientDataSet1.FieldByName("6").Value;
p7:=ClientDataSet1.FieldByName("7).Value;
end;

procedure TForm1.ClientDataSet1AfterInsert(DataSet: TDataSet);
begin
ClientDataSet1.FieldByName("1").Value:=p1;
ClientDataSet1.FieldByName("2").Value:=p2;
ClientDataSet1.FieldByName("3").Value:=p3;
ClientDataSet1.FieldByName("4").Value:=p4;
ClientDataSet1.FieldByName("5").Value:=p5;
ClientDataSet1.FieldByName("6").Value:=p6;
ClientDataSet1.FieldByName("7").Value:=p7;

end;


 
Desdechado ©   (2006-01-14 16:05) [8]

самое простое - сделать первые 3 дырки ввода данных через обычные, а не DB-контролы
для каждой записи в событии BeforePost заполнять значения полей из этих дырок


 
psyBNC ©   (2006-01-14 16:14) [9]

посто сказать я нечего не понел!!!


 
Virgo_Style ©   (2006-01-14 16:19) [10]

psyBNC ©   (14.01.06 16:14) [9]

Даже то, что сам написал?
Извиняюсь за оффтоп - но только за оффтоп.


 
Anatoly Podgoretsky ©   (2006-01-14 16:59) [11]

psyBNC ©   (14.01.06 03:24)  
Поле 1,2,3 заполняется из dbcombobox и dbedit и должно быть одинаково во всех строках таблици.

В таком случае поля 1, 2 и 3 не имеют смысла и их можно и нужно удалить из таблицы!


 
psyBNC ©   (2006-01-14 17:03) [12]

нет нельзя удалять
потому что у меня есть дата время и отдел
допустим я покупаю 50 наименований
у каждого наименование значение дата время и отдел будет одно и тоже
но если делают покупку в другой день или время??????


 
Anatoly Podgoretsky ©   (2006-01-14 17:12) [13]

psyBNC ©   (14.01.06 17:03) [12]
Это обязательно нужно удалять, посколько во всех строках таблицы оно одинаковое. Достаточно иметь константу.
Мне кажется что они у тебя все таки разные, но в этом случае сразу становится вопрос об нормализации таблиц.


 
psyBNC ©   (2006-01-14 17:20) [14]

нет все значения одинаковые только наименование разное!!!
а через константу как можно зделать я даже принцип понять не могу!!!


 
Anatoly Podgoretsky ©   (2006-01-14 17:36) [15]

SELECT "12.12.2006", "12.00", 3, 4, 5 FROM Tbl


 
psyBNC ©   (2006-01-14 17:39) [16]

ну а дата поменяется и время??
нет мне кажется так как я хочу проще!?!?!?


 
Desdechado ©   (2006-01-14 19:53) [17]

"проще" - не значит "правильнее"
или, как в законах Мерфи, "для любой сложной проблемы существует очевидное, легкое для понимания неправильное решение"
то, что сказал AP про нормализацию - верно
но ты даже свой случай никак не можешь раскрутить, куда уж до нормализации-то...
читай справку по [8]


 
psyBNC ©   (2006-01-15 07:01) [18]

незнаю может и правельней зделать так,
но мне хотяб понять как работает как я предлогаю!
Я только начел программировать, и я бывает просто не понемаю что мне говорит я просто прошу что б мне обьеснили что и куда ставиться простым человечиским языком!
например как
YurikGL ©   (14.01.06 13:02) [5]
-------------------------------------------------------
За ранее всем большое спосибо, за терпение и понимание!!!


 
psyBNC ©   (2006-01-15 08:16) [19]

Всё я понел сам!!!
Оказывается всё просто как некогда, как я сам не догался!!!

все выгледит вот так:
для добавления строки событие "OnClick"

procedure TForm1.N1Click(Sender: TObject);
begin
p1:=DBComboBox1.Text;
p2:=DBEdit1.Text;
p3:=DBEdit3.Text;
p4:=DBComboBox2.Text;
p5:=DBEdit5.Text;
p6:=DBEdit6.Text;
p7:=DBEdit7.Text;
ClientDataSet1.Insert;
ClientDataSet1.FieldByName("1").AsString:=p1;
ClientDataSet1.FieldByName("2").AsString:=p2;
ClientDataSet1.FieldByName("3").AsString:=p3;
ClientDataSet1.FieldByName("4").AsString:=p4;
ClientDataSet1.FieldByName("5").AsString:=p5;
ClientDataSet1.FieldByName("6").AsString:=p6;
ClientDataSet1.FieldByName("7").AsString:=p7;
end;

вот

теперь вопрос: по добавлению данных к уже имеющиемся данным в файле .xml
Как это зделать????



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

Текущий архив: 2006.01.29;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.045 c
2-1137397919
Pazitron_Brain
2006-01-16 10:51
2006.01.29
Как перетаскивать форму


2-1137153281
max666
2006-01-13 14:54
2006.01.29
Вывод значения адреса из переменной Pbyte в HEX формате


4-1131966113
konrads
2005-11-14 14:01
2006.01.29
Открыть Internet страничку


2-1137321045
Tonich
2006-01-15 13:30
2006.01.29
Число знаков


2-1137332465
Кумар
2006-01-15 16:41
2006.01.29
Проблемы с ListBox