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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.043 c
2-1137018122
Farpik
2006-01-12 01:22
2006.01.29
CreateProcess


2-1137345737
Sirko
2006-01-15 20:22
2006.01.29
FastReport


9-1116686883
!Trinix
2005-05-21 18:48
2006.01.29
Вопросы по моделям в игре


2-1137161449
sanich
2006-01-13 17:10
2006.01.29
Что могла бы значить подобная ошибка?


2-1136978527
dr D
2006-01-11 14:22
2006.01.29
Как распарсить строку (WideString)?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский