1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6

Таблицы и поля

01.07.2011, 13:11. Показов 1958. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые господа-программисты. Раньше с таким не сталкивался, поэтому решил спросить совета у вас. У меня следующий вопрос: есть таблица Number в формате Paradox, содерхжащая поля Number и Account. Подключение в C++ к ней осуществляется через Query. Нужно написать скрипт, который заполнит поля столбца ACCOUNT значением «40302», если значение соответствующего поля из столбца NUMBER чётное, и значением «40501», если — нечётное. Как можно реализовать данный скрипт?

Добавлено через 55 минут
Через ComboBox, я так понимаю, не вариант абсолютно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.07.2011, 13:11
Ответы с готовыми решениями:

Значение pk поля в fk поля другой таблицы, программно.
Добрый день имею такую задачу заполнил шапку таблицы сделал post,commit записб появиласб в базе теперь надо добавить записи в...

Можно ли как нибудь добавить данные из 1 поля 1 таблицы в pickllist другого поля другой таблицы?
Добавить данные в picklist полю ФИО, чтоб получился выпадающий список Бред конечно, ноо... Может есть какие идеи?) ...

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

10
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.07.2011, 13:49
Ты знаешь как проверить чётность и нечётность значения?
1
1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6
01.07.2011, 14:00  [ТС]
Саша, нет, с четностью/нечетностью не сталкивался. Значения целочисленные даются.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.07.2011, 14:46
Можно сделать так проверяй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Query1->DisableControls();
Query1->First();
while(!Query1->Eof)
 {
   DataSource1->DataSet->Edit();
  if (Query1->FieldByName("NUMBER")->AsInteger%2==0)
    {
      DataSource1->DataSet->FieldByName("ACCOUNT")->Value = "40302";
    }
   else
    {
      DataSource1->DataSet->FieldByName("ACCOUNT")->Value = "40501";
    }
     DataSource1->DataSet->Post();
     Query1->Next();
     Application->ProcessMessages();
  }
     Query1->First();
     DBGrid1->SetFocus();
     Query1->EnableControls();
Добавлено через 34 минуты
Цитата Сообщение от Sasha Посмотреть сообщение
Можно сделать так проверяй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Query1->DisableControls();
Query1->First();
while(!Query1->Eof)
 {
   DataSource1->DataSet->Edit();
  if (Query1->FieldByName("NUMBER")->AsInteger%2==0)
    {
      DataSource1->DataSet->FieldByName("ACCOUNT")->Value = "40302";
    }
   else
    {
      DataSource1->DataSet->FieldByName("ACCOUNT")->Value = "40501";
    }
     DataSource1->DataSet->Post();
     Query1->Next();
     Application->ProcessMessages();
  }
     Query1->First();
     DBGrid1->SetFocus();
     Query1->EnableControls();
Код работает?
2
 Аватар для Jafa
51 / 51 / 13
Регистрация: 05.06.2008
Сообщений: 139
01.07.2011, 14:56
еще один вариант, может не рабочий
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <vector.h>
vector <AnsiString> Command;
AnsiString Tmp;
while(!Query1->Eof){
    if(Query1->FieldByName("number")->AsInteger % 2 == 0)
        Tmp = "UPDATE number SET account = 40302 WHERE number = " + Query1->FieldByName("number")->AsString;
    else
        Tmp = "UPDATE number SET account = 40501 WHERE number = " + Query1->FieldByName("number")->AsString;
        Command.push_back(Tmp);
    Query1->Next();
              }
for(int i=0;i < Command.size();i++){
    Query1->Close();
    Query1->SQL->Text = Command[i];
    Query1->Open();
1
1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6
01.07.2011, 15:43  [ТС]
Да, Саша, спасибо большое. Все работает как надо, да и я разобрался.

Добавлено через 41 минуту
P.S.: еще один момент к коду Саши, если у кого-то будет такой же вопрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
Query1->DisableControls();
Query1->First();
while(!Query1->Eof)
 {
   DataSource1->DataSet->Edit();
  if (Query1->FieldByName("Number")->AsInteger%2==0)
    {
      DataSource1->DataSet->FieldByName("Account")->Value = "40302";
    }
   else
    {
      DataSource1->DataSet->FieldByName("Account")->Value = "40501";
    }
     DataSource1->DataSet->Post();
     Query1->Next();
     Application->ProcessMessages();
  }
     Query1->First();
     DBGrid1->SetFocus();
     Query1->EnableControls();        
}
В свойствах Query надо RequestLive изменить с false на true, иначе будет ошибка "Query1: cannot modify a read-only dataset".
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.07.2011, 16:27
Все эти действа излишни - такое нужно делать только запросом !
А вот за это
Delphi
1
в свойствах Query надо RequestLive изменить с false на true,
надо вообще по ж.. бить ! Ну когда ж Вы будете читать справку. Ну ведь ясно ж писано:

If the SQL statement used in a TQuery is a general, multi-row SELECT statement, RequestLive can be used with either a true or a false value. For all other SQL statements issued from the TQuery, RequestLive should only be set to false. These other statements include noncursor single-row SELECT statements (more commonly found in stored procedure programming), noncursor Data Manipulation Language (DML) statements like UPDATE or DELETE, and Data Definition Language (DDL) statements like CREATE TABLE and DROP INDEX.

Будет работать, возможно, если у Вас был Select * или Select ID,A,B,C... и ID - автоинкремент и PK, но в общем случае - это потенциальный косяк. Который может вылезти через день, а может через год ! В зависимости от того, сколько и каких данных "вбили" в таблицу !
0
1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6
01.07.2011, 16:36  [ТС]
Цитата Сообщение от MsGuns Посмотреть сообщение
Будет работать, возможно, если у Вас был Select *
У меня и был так прописан запрос select* from number + ID autoincrement
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.07.2011, 16:39
Цитата Сообщение от MsGuns Посмотреть сообщение
Все эти действа излишни - такое нужно делать только запросом !
А вот за это
Delphi
1
в свойствах Query надо RequestLive изменить с false на true,
надо вообще по ж.. бить ! Ну когда ж Вы будете читать справку. Ну ведь ясно ж писано:

If the SQL statement used in a TQuery is a general, multi-row SELECT statement, RequestLive can be used with either a true or a false value. For all other SQL statements issued from the TQuery, RequestLive should only be set to false. These other statements include noncursor single-row SELECT statements (more commonly found in stored procedure programming), noncursor Data Manipulation Language (DML) statements like UPDATE or DELETE, and Data Definition Language (DDL) statements like CREATE TABLE and DROP INDEX.

Будет работать, возможно, если у Вас был Select * или Select ID,A,B,C... и ID - автоинкремент и PK, но в общем случае - это потенциальный косяк. Который может вылезти через день, а может через год ! В зависимости от того, сколько и каких данных "вбили" в таблицу !
Предложи свой вариант решения запросом!!!!!!!!!!!!!!!!!!!
0
1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6
01.07.2011, 16:46  [ТС]
Саша, он видимо имел ввиду запросы через TUpdateSQL.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.07.2011, 17:18
Цитата Сообщение от ArtemLeonov Посмотреть сообщение
Саша, он видимо имел ввиду запросы через TUpdateSQL.
Я знаю, что он имел ввиду пускай напишет пример!!!!!!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2011, 17:18
Помогаю со студенческими работами здесь

Сложный запрос? Поля из одной таблицы, и поля из другой таблицы, но...
Вот так мы делаем выборку из основной таблицы table1: SELECT t1.ID, t1.f2, t1.f3 FROM table1 t1 WHERE (какой-то простой фильтр) ...

Обновление одного поля таблицы, при заполнении поля в другой таблице
Друзья помогите новичку! Есть две таблицы -продажа(id продажи, сумма продажи) -скидка(id скидки, id продажи, скидка 15%) Как...

Ошибка при создании поля таблицы и указании расположения поля в таблице
Пытаюсь создать поле с указанием его расположения в таблице. Пока безрезультатно ALTER TABLE AAA ADD COLUMN 12 VARCHAR(100) AFTER 11

Вывод количества полей одного поля для другого поля этой же таблицы
Здравствуйте! Есть таблица Statement, в которой есть два поля: StatementNumber и StudentID. Для каждой ведомости может быть несколько...

как сделать Поля таблицы на русском и скрыть поля счетчик в windows forms
как правильно сделать Поля таблицы на русском и скрыть поля счетчик в windows forms? SQL server использую


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru