• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите с базой

  • Автор темы Kirill1987
  • Дата начала
K

Kirill1987

Помогите пожалуйста,а то уже голова плавится, файлы проекта прилагаю, вопросы следубщие:
1) Операции> проставить направления компании
я написал чтобы ставились все направления до 200 километров, а надо чтобы они ставились только до значения edit1, понимаю что надо в цикл счетчик запихнуть, но не получается, куда я только его не пихал уже :ph34r:
2) надо создать таблицу след вида
Дата (предполагаю лукап полем из таблицы список ведомостей)
перевозчик (перевозчики)
количество отказов
количество дополнительных заявок
Надо чтобы в нее при операции>провести основную ведомость в столбец 'количество отказов' добавлялось количество отказов перевозчика, то что перевозчик отказался - определяется по полю подтверждение - если false - отказался
А при операции> провести дополнительную ведомость в столбец дополнительных заявок - количество как раз где подтверждение true
это как реализовать вообще не понимаю



Поправка по первому вопросу, надо чтобы значение компания ставилось не всем направлениям до 200 км, а только тому количеству которое в edit1
 

Вложения

  • ______________________.rar
    25,3 КБ · Просмотры: 128
K

Kirill1987

В общем, я студент и это первая база которую пишу, хотелось бы чтобы ее кто то посмотрел, наверняка куча ошибок везде но это не особо принципиально, просто интересно,, а вопросы вот конкнретные:
1) есть обработчик на кнопку проставить направления компании
Код:
begin
datamodule2.VednaOtgruzTable.First;
while not datamodule2.VednaOtgruzTable.eof do
begin
if datamodule2.VednaOtgruzTable.FieldByName('Расстояние').AsVariant<=200
then
begin
datamodule2.VednaOtgruzTable.Edit;
datamodule2.VednaOtgruzTable.FieldByName('Перевозчик').AsString:='Компания';
datamodule2.VednaOtgruzTable.Post;
end;
datamodule2.VednaOtgruzTable.Next;
end;
он работает, но надо чтобы значения компания ставились, не по всей таблице, а только на первых 40 направлениях подходящих понимаю нужен счетчик, но как реализовать не знаю
2) как в связанной таблице считать количество отказов и взятых перевозчиком дополнительных заявок
 
E

etc

понимаю нужен счетчик, но как реализовать не знаю
Да просто заводите переменную, и в цыкле наращиваете ее пока не достигнет предела по условию.
как в связанной таблице считать количество отказов и взятых перевозчиком дополнительных заявок
Что за таблица, то за отказы, что за доп. заявки? Количество расчитываеться путем сложения удовл. условию элементов/позиций/....

Я вам тоже вопрос задам : есть у меня одна штука, хорошая такая штука, надо сказать, так вот когда ее берут и делают непотребное, то получаеться полная ерунда. Не подскажите как исправить? ------ это к тому что ваш вопрос примерно такого же содержания.
 
K

Kirill1987

Заводил переменную вставлял в цикл, не работает, пробовал разные конструкции не получается, поэтому и вопрос написал
 
K

Kirill1987

Вопрос снимаю было недавно просветление сделал вот так, вроде работает:
procedure TForm1.N5Click(Sender: TObject);
var
i:integer;
c:integer;
begin
i:=0;
c:=strtoint(edit1.text);
datamodule2.VednaOtgruzTable.First;
while not datamodule2.VednaOtgruzTable.Eof do
if datamodule2.VednaOtgruzTable.FieldByName('Расстоян ие').AsVariant<=200
then
begin
datamodule2.VednaOtgruzTable.Edit;
datamodule2.VednaOtgruzTable.FieldByName('Перевозч ик').AsString:='Компания';
datamodule2.VednaOtgruzTable.Post;
inc(i);
if i<c
then
datamodule2.VednaOtgruzTable.Next
else
datamodule2.VednaOtgruzTable.Last;
end
else
datamodule2.VednaOtgruzTable.Next;

Единственное, не уверен в корректности вот этой строки
else
datamodule2.VednaOtgruzTable.Last;
Может можно, как нибудь цикл по другому завершить
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!