Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2014, 21:51   #21
demiware
Пользователь
 
Аватар для demiware
 
Регистрация: 13.01.2014
Сообщений: 21
Плохо

Не вдаваясь во всякие там условия что куда и зачем нужно присваивать афтару, на поверхности сего, извиняюсь, "говнокода" лежит явный нелепый баг...
PHP код:
while not Datamodule3.ADOTable6.eof do
//    for i:=0 to Datamodule3.ADOTable6.RecordCount-1 do
    
begin
    Datamodule3
.ADOTable6.Edit;

    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='11' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p1;
    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='22' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p2;
    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='33' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p3
здесь должно быть Datamodule3.ADOTable6.Post;
PHP код:
    Datamodule3.ADOTable6.Next;
    
end;
//    Datamodule3.ADOTable6.Post; 
Иначе нет никакого смысла в этом проходе по таблице - ничего никуда не сохраняется...
Приглашаю в мой блог http://demiware.ru о программировании в Delphi, PHP(Symfony)...
demiware вне форума Ответить с цитированием
Старый 13.01.2014, 21:51   #22
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
он выполняется когда до него очередь доходит, в начале или в конце не важно, т.е. как запрограммировали так и будет

вы поймите не видя кода и/или ошибки вам никто не поможет
С ЭТОЙ БЯКОЙ Я РАЗОБРАЛСЯ. МОЖЕТ НЕ СОВСЕМ ЦИВИЛИЗОВАННО, НО ВСЕ ЖЕ. Я УБРАЛ ТЕКСТ ЗАПРОСА ИЗ РЕДАКТОРА SQL И ВПЕНДЮРИЛ ЕГО В КОД.

Код:
    Datamodule3.ADOQuery7.SQL.Text:='INSERT INTO.....;
    Datamodule3.ADOQuery7.ExecSQL;
    Datamodule3.ADOQuery7.SQL.Text:='';
    Datamodule3.ADOTable6.Active:=false;
    Datamodule3.ADOTable6.Active:=true;
ТЕПЕРЬ ДРУГАЯ СЛОЖНОСТЬ
Код:
UPDATE PV_STR SET [Эквивалент]=K_VAL.[643]*PV_STR.[СУММА]WHERE PV_STR.[КОД ВАЛЮТЫ]=643
K_VAL.[643] НАХОДИТСЯ В ДРУГОЙ ТАБЛИЦЕ И ПОЛУЧАЕТСЯ ОШИБКА, ЧТО K_VAL.[643] НЕ ИМЕЕТ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ. НУЖНО КАК-ТО ПРОПИСАТЬ, ГДЕ БРАТЬ ЭТИ ДАННЫЕ, КАКОЙ-НИБУДЬ SELECT.
ВЫРУЧАЙТЕ...
govorun1 вне форума Ответить с цитированием
Старый 13.01.2014, 22:08   #23
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от demiware Посмотреть сообщение
Не вдаваясь во всякие там условия что куда и зачем нужно присваивать афтару, на поверхности сего, извиняюсь, "говнокода" лежит явный нелепый баг...
PHP код:
while not Datamodule3.ADOTable6.eof do
//    for i:=0 to Datamodule3.ADOTable6.RecordCount-1 do
    
begin
    Datamodule3
.ADOTable6.Edit;

    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='11' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p1;
    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='22' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p2;
    if 
Datamodule3.ADOTable6.Fields.FieldByName('AAA').AsString='33' then
    Datamodule3
.ADOTable6.Fields.FieldByName('XXX').AsString:=p3
здесь должно быть Datamodule3.ADOTable6.Post;
PHP код:
    Datamodule3.ADOTable6.Next;
    
end;
//    Datamodule3.ADOTable6.Post; 
Иначе нет никакого смысла в этом проходе по таблице - ничего никуда не сохраняется...
ЭТО УЖЕ ПРОЙДЕННЫЙ ЭТАП, НО ВСЕ РАВНО СПАСИБО ЗА КОМПЛИМЕНТ...
А ПРО 'POST' - КАК РАЗ СОХРАНЯЛОСЬ, ТОЛЬКО ВСЯКАЯ ХРЕНЬ
govorun1 вне форума Ответить с цитированием
Старый 13.01.2014, 22:11   #24
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

так вы прочитайте про UPDATE вашей субд, как там заджойнить таблицы можно
eval вне форума Ответить с цитированием
Старый 13.01.2014, 22:54   #25
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
так вы прочитайте про UPDATE вашей субд, как там заджойнить таблицы можно
Если имеется в виду "связать таблицы" то мне это не годится.
Это не связанные таблицы. Связывать их как обычно в Access нельзя. Нужно что-то другое.

Или по другому никак?
govorun1 вне форума Ответить с цитированием
Старый 13.01.2014, 23:13   #26
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
так вы прочитайте про UPDATE вашей субд, как там заджойнить таблицы можно
Мот что-нибудь такое
Код:
var
  x1 : real;
begin
  x1 := datamodule3.adotable9.fields.....;
  ADOQuery.SQL.Text := 'UPDATE PV_STR SET [Эквивалент]=x1*PV_STR.[СУММА]WHERE PV_STR.[КОД ВАЛЮТЫ]=643;
  ADOQuery.Parameters[0].Value := x1;
  ADOQuery.Open;
govorun1 вне форума Ответить с цитированием
Старый 14.01.2014, 00:23   #27
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

я про sql а не про аксес
eval вне форума Ответить с цитированием
Старый 14.01.2014, 19:35   #28
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
я про sql а не про аксес
Я понял...
попробую вариантом, указанным выше...
Если получится - откажусь от одной таблицы...
govorun1 вне форума Ответить с цитированием
Старый 14.01.2014, 22:41   #29
govorun1
Форумчанин
 
Регистрация: 08.11.2013
Сообщений: 137
По умолчанию

Цитата:
Сообщение от govorun1 Посмотреть сообщение
Я понял...
попробую вариантом, указанным выше...
Если получится - откажусь от одной таблицы...
НЕ ПОЙМУ, ЧЕГО ЗАПРОС ПОЛЕ 'СУММА' НЕ ВОСПРИНИМАЕТ

Код:
var
    D1:real;
begin
    D1:= STRTOFLOAT(DBEDITEH2.Text);
    Datamodule3.ADOQuery8.Active:=FALSE;
    Datamodule3.ADOQuery8.SQL.Text := 'UPDATE PV_STR SET [ЭКВИВАЛЕНТ]=:D1*[СУММА] WHERE [КОД ВАЛЮТЫ]=643';
    Datamodule3.ADOQuery8.Parameters[0].Value:=D1;
    Datamodule3.ADOQuery8.ExecSQL;
    Datamodule3.ADOTable6.Active:=false;
    Datamodule3.ADOTable6.Active:=true;
END;
govorun1 вне форума Ответить с цитированием
Старый 14.01.2014, 23:26   #30
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вместо того чтобы потратить пол часа на чтение как написать правильно апдейт, вы городите не пойми что и теряете на этом неделю. И вы еще про пенсию говорите..
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие в цикле HiDunay Общие вопросы C/C++ 2 29.11.2013 19:03
бабочка в цикле mixon-21 Общие вопросы C/C++ 3 06.03.2013 11:54
условие в цикле с блокировкой колонок KSTeeen Microsoft Office Excel 9 18.11.2012 22:15
Цикл в цикле SkyL1ne Помощь студентам 7 02.04.2010 07:36
условие в цикле Николай Сергеевич Общие вопросы C/C++ 8 24.12.2009 14:25