powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Условие на редактирование записей
25 сообщений из 48, страница 1 из 2
Условие на редактирование записей
    #39843140
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
if  not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
      begin
   for i:=0 to n do
  begin
  Table2.Insert;
         Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
 Table2.Post;
end;
end
else
begin
 for i:=0 to n  do
  begin
         Table2.Edit;
Table2.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
 Table2.Post;
end;
end;


Не понятно почему заменяется только первый элемент массива на последний. Когда в Table2 в столбце Isid находятся значения Projid, то по условию else должно замениться все элементы, а заменяется новым (причем последним элементом) только первый элемент.
Или вместо
Код: pascal
1.
if  not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[])

условия надо другое?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843144
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015а заменяется новым (причем последним элементом)

Ну так перечитай свой цикл внимательно. Ты сам обновляешь одно и то же поле всеми
значениями из массива последовательно. Естественно выживает только одно (последнее).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843151
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда ж вы кнопку SRC нажимать будете?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
if not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
begin
  for i:=0 to n do
    begin
      Table2.Insert;
      Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
//.........
      Table2.Post;
    end;
  end
else
begin
  for i:=0 to n do
  begin
    Table2.Edit;
    Table2.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
//.........
    Table2.Post;
  end;
end;


...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843163
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gator,
Не заметил
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843165
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovBora2015а заменяется новым (причем последним элементом)

Ну так перечитай свой цикл внимательно. Ты сам обновляешь одно и то же поле всеми
значениями из массива последовательно. Естественно выживает только одно (последнее).

А как правильно?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843178
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно обновлять значения ЗАПРОСОМ
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843185
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrЗАПРОСОМ

Запрос это не очень хорошая идея при использовании локальных навигационных СУБд класса BDE.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843190
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗапрос это не очень хорошая идея при использовании локальных навигационных СУБд класса BDE.

Точно !!! Лучше 100 раз сделать Edit/Post !!!
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843192
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrЛучше 100 раз сделать Edit/Post !!!

В названном случае - да. Потому что всё всё равно сведётся к этому, только не будет лишних
прокладок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843195
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015А как правильно?Правильно пробегать по записям, а не менять одну и ту же
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843200
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_niggerBora2015А как правильно?Правильно пробегать по записям, а не менять одну и ту же
Как это реализовать? Что в коде надо изменить ?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843227
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Как это реализовать? Что в коде надо изменить ?Добавить переход на следующую запись в итерацию. А лучше прочитать любую книжку по азам работы с DB в делфи, чтоб не задавать дурацких вопросов
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843450
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovDimaBrЛучше 100 раз сделать Edit/Post !!!

В названном случае - да. Потому что всё всё равно сведётся к этому, только не будет лишних
прокладок.

Речь идёт об этом?
Код: pascal
1.
2.
3.
4.
Table2.Edit;
Table2. FieldbyName('Cy1').AsString:=floattostr(Cy1(0));
Table2.Post;
 


Потом тоже для Су1(1) и т.д
Или нет?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843512
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,

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


зы. ты хоть задачу обрисуй, судя по первому посту у тебя 3(!) таблицы и один (динмаческий? статический?) массив.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843527
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДокBora2015,

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


зы. ты хоть задачу обрисуй, судя по первому посту у тебя 3(!) таблицы и один (динмаческий? статический?) массив.
Да три таблицы.
В первой хранятся названия проектов ,во второй исходн. данные в третьей результаты расчета. Первая таблица главная и связана со второй и третьей. В первые две таблицы записывается и редактируется нормально, а в третью записывается ,но с редактированием проблема. Результат расчета хранится в статических массивах, которые я записывал в соответств.поля таблицы 3.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843531
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,

сдается мне, что у тебя возможно проблемы с проектированием и нормализацией таблиц. И, в итоге, ты так и не озвучил, зачем ты добавляешь записи в Table2, но при этом изменяешь значение поля в Table3. Это описка?
Код: pascal
1.
2.
3.
4.
5.
6.
for i:=0 to n do
begin
Table2.Insert;
Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
Table2.Post;

.зы. ты бы привел структуру минимальную структуру всех таблиц и тип массива
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843554
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДокBora2015,

сдается мне, что у тебя возможно проблемы с проектированием и нормализацией таблиц. И, в итоге, ты так и не озвучил, зачем ты добавляешь записи в Table2, но при этом изменяешь значение поля в Table3. Это описка?
Код: pascal
1.
2.
3.
4.
5.
6.
for i:=0 to n do
begin
Table2.Insert;
Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
Table2.Post;

.зы. ты бы привел структуру минимальную структуру всех таблиц и тип массива
Да опечатка.
Массив размерностью от 0 до 5.
Табл 1 с полями projid (автоикр) и projname . Табл 2 с полями ishid (автоикрем) , isid ( связано с полем projid) и ещё несколько полей куда записываются исх. данные введённые в edit. Третья rid (автоинкр) ,rezid (связано с полем projid) ,cy1 и ещё несколько полей куда записываются результ данные
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843559
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Массив размерностью от 0 до 5.
Табл 1 с полями projid (автоикр) и projname . Табл 2 с полями ishid (автоикрем) , isid ( связано с полем projid) и ещё несколько полей куда записываются исх. данные введённые в edit. Третья rid (автоинкр) ,rezid (связано с полем projid) ,cy1 и ещё несколько полей куда записываются результ данные
Это ваше решение поставленной задачи. Но самой задачи нет.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843579
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBrBora2015Массив размерностью от 0 до 5.
Табл 1 с полями projid (автоикр) и projname . Табл 2 с полями ishid (автоикрем) , isid ( связано с полем projid) и ещё несколько полей куда записываются исх. данные введённые в edit. Третья rid (автоинкр) ,rezid (связано с полем projid) ,cy1 и ещё несколько полей куда записываются результ данные
Это ваше решение поставленной задачи. Но самой задачи нет.
А никакой постановки задачи нет. Сам ставлю.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843587
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015DimaBrпропущено...

Это ваше решение поставленной задачи. Но самой задачи нет.
А никакой постановки задачи нет. Сам ставлю.
Ни что же тебе нужно?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843591
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBrBora2015Массив размерностью от 0 до 5.
Табл 1 с полями projid (автоикр) и projname . Табл 2 с полями ishid (автоикрем) , isid ( связано с полем projid) и ещё несколько полей куда записываются исх. данные введённые в edit. Третья rid (автоинкр) ,rezid (связано с полем projid) ,cy1 и ещё несколько полей куда записываются результ данные
Это ваше решение поставленной задачи. Но самой задачи нет.
Мне не понятно, как редактировать данные которые хранятся в табл 3, чтобы менялись все шесть записей в поле ,а не только первый.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843698
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015...чтобы менялись все шесть записей в поле ,а не только первый.
Мать, что за поток бреда?
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843711
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёёBora2015...чтобы менялись все шесть записей в поле ,а не только первый.
Мать, что за поток бреда?
Каждой новой записи в таб 1 соответствует 6 в табл 3. Имелось в виду 6 записей во всех полях таблицы 3.
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843716
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,

Как таблицы связаны? Какие констрены? Нарисуй, наконец, свои таблицы (со связями).
...
Рейтинг: 0 / 0
Условие на редактирование записей
    #39843719
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GatorBora2015,

Как таблицы связаны? Какие констрены? Нарисуй, наконец, свои таблицы (со связями).
Табл 1 с полями projid (автоинкр) и projname . Табл 2 с полями ishid (автоинкрем) , isid ( связано с полем projid) и ещё несколько полей куда записываются исх. данные введённые в edit. Третья rid (автоинкр) ,rezid (связано с полем projid) ,cy1 и ещё несколько полей куда записываются результ данные
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Условие на редактирование записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]