Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 01.07.2011
Сообщений: 6

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

01.07.2011, 13:11. Показов 1945. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru