Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172

Подскажите новичку как работать с БД ?

08.11.2009, 22:18. Показов 7335. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читал книгу - нифига не понял. Чел пишет об SQL запросах и при этом НИ СЛОВА о том КАК их осуществлять на практике.
Работал с MySQL на PHP так вот там действительно можно было оправить запрос вида:

INSERT INTO: users (NickName, Parol, E-mail) VALUES ('Vasya', 'password', 'miltse@mail.ru');

Причём именно в таком виде и отправить.
А Builder не хочет кушать запрос в таком виде. А как же тогда?

P.S. Как я понял... либо запрос должен быть в другом виде... либо надо что-то куда-то добавить, чтобы Builder понимал такие запросы... В общем из книги я так нифига и не понял как это сделать.
Мей би кто подскажет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2009, 22:18
Ответы с готовыми решениями:

Подскажите новичку как работать с кодировкой utf-8
Здравствуйте. Я начал изучать php и столкнулся с проблемой кодировок ((, а именно: Есть html файл, сохраненый в кодировке utf_8 wiht...

Подскажите новичку как разобраться с ссылками
Есть такая строка: <a href="javascript://">Ссылка1</a> Их несколько. При нажатии на такую ссылку появляется определенный текст. Так...

Подскажите новичку как поступить с клиент-банком
Здравствуйте! Я начинающий программист по 1С. Внедряем участок сбыта. Т.е. сделана отгрузка товара, распечатка ТТН... Есть...

47
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
10.11.2009, 23:20  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
какое исключение пишет?
Вот такую фигню выкидывает:



Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
вы вообще соединение настроили?
Естественно. Даже для проверки в Database Desktop вписал одну запись. Значит если вот такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->SQL->Add("INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')");
//Query1->ExecSQL();
Table1->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Table1->Active = false;
}
то всё тип-топ работает. Клацаем одну кнопочку - показует первую запись, клацаем другую - ничего не показывает.

А если вот эту строку разремить:
C++
1
//Query1->ExecSQL();
то сразу вылетает вот такой баг:



0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.11.2009, 00:38
поле у тебя написано неправильно. попробуй его в скобки одиночные взять, либо переименуй, чтобы минуса не было
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
11.11.2009, 10:38
Fermion, для отображения данных из запроса (в данном случае Query1) в таблице (DBGrid и т.д.), в свойстве Query1->SQL должно быть записано условие выбора
SQL
1
SELECT * FROM ...
. А для того чтобы использовать другие запросы (типа INSERT, DELETE) применяется метод
C++
1
Query1->ExecSQL();
, при этом свойство Query1->Active должно быть false, ну а после того как вы исполнили нужный вам запрос, возвращайте все в исходное состояние. Ну например попробуйте сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Это при условии, что у вас все связано ТОЛЬКО с набором данных Query1, 
// и Table1 здесь не используется
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Для начала сделайте неактивным запрос
Query1->Active = false;
// Затем очистим 
Query1->SQL->Clear();
// Затем добавляете ваш запрос вставки в свойство SQL
Query1->SQL->Add("INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')");
// Затем исполняете
Query1->ExecSQL();
// Опять очищаете
Query1->SQL->Clear();
// И записываете в свойство SQL запрос выборки данных
Query1->SQL->Add("SELECT ну и чё у вас там дальше...");
// И переводите в активное состояние
Query1->Active = true;
}
Думаю расписал подробно.
PS: А если вы также используете набор данных Table1 и он у вас используется для отображения данных, а Query1 используете для выполнения запросов (хотя я не вижу смысла в такой связке), тогда все запросы в Query1 исполняйте с помощью ExecSQL(), Query1->Active при этом в false, а после ExecSQL() делайте рефреш для Table1 (там метод такой есть).

Тот же пример с Query1 и Table1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Для начала сделайте неактивным запрос, если он вдруг был активным
Query1->Active = false;
// Затем очистим 
Query1->SQL->Clear();
// Затем добавляете ваш запрос вставки в свойство SQL
Query1->SQL->Add("INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')");
// Затем исполняете
Query1->ExecSQL();
// рефреш Table1
Table1->Refresh();
}
Добавлено через 30 минут
А по поводу синтаксиса SQL для какой-либо СУБД, как сказал Lord_Voodoo, читайте мануал к этой СУБД.
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
11.11.2009, 11:12  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
Думаю расписал подробно.
Да. Спасибо большое.

Цитата Сообщение от Cepera Посмотреть сообщение
PS: А если вы также используете набор данных Table1 и он у вас используется для отображения данных, а Query1 используете для выполнения запросов (хотя я не вижу смысла в такой связке)
А можно с этого момента поподробнее.... значит можно обойтись без Query только средствами Table ? В принципе запросы у меня не сложные. А как тогда это сделать. Или где хотя бы об этом почитать можно?
В первую очередь меня интересует заполнение таблицы. Блин в книгах (где логика? где смысл?) пишут только о получении данных из таблицы их сортировки и прочее прочее... А то что перед получение данных из таблицы её ещё заполнить надо, авторы тихо умалчивают... видимо подразумевая, что заполнять таблицу надо исключительно с помощью Database Desktop. А мне бы вот программно её заполнить.
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
11.11.2009, 12:06
Цитата Сообщение от Fermion Посмотреть сообщение
значит можно обойтись без Query только средствами Table
да, вот так:
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
с помощью методов Insert - Post объекта класса TTable
например:
C++
1
2
3
4
// Вставка данных
Table1->Insert();
// Закрепление изменений
Table1->Post();
Но когда я писал
Цитата Сообщение от Cepera Посмотреть сообщение
(хотя я не вижу смысла в такой связке)
я имел ввиду, что нет смысла использовать Table1 для отображения данных, если вы уже используете Query1 для всего остального. Query1 также можно использовать для отображения данных в таблице TDBGrid. А так же использовать Query лучше и удобнее (это ИМХО).

Добавлено через 23 минуты
Когда вы на форме создали Query1 свяжите его с компонентом отображения данных (DBGrid например). Сразу определите в инспекторе объектов (по моему так он называется в билдере) свойство SQL, запишите туда запрос выбора select * from tablename. И измените свойство Active в true. Вы должны будете сразу увидеть данные в DBGrid (если конечно они в таблице есть). Но свойство Active не должно быть в состоянии true до момент запуска программы. Поэтому при компиляции программы это свойство в false, а уже при выполнении программы переводите это свойство в true. Это лучше сделать в событии FormCreate компонента Form1
C++
1
2
3
4
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Query1->Active = true;
}
А при закрытии программы соответственно закрывать соединение
C++
1
2
3
4
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
Query1->Active = false;
}
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
11.11.2009, 12:08  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
я имел ввиду, что нет смысла использовать Table1 для отображения данных, если вы уже используете Query1 для всего остального. Query1 также можно использовать для отображения данных в таблице TDBGrid. А так же использовать Query лучше и удобнее (это ИМХО).
Короче беда у меня какая-то с Query. При попытке использовать её в программе все время вылетает вот такой баг:


Но это даже не главное. При попытке установить Query->Active = true в инспекторе объектов пишет: Query1: No SQL statement available.

Кто-нить знает как с этим бороться?
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
11.11.2009, 12:17
Цитата Сообщение от Fermion Посмотреть сообщение
Query1: No SQL statement available.
Ну так вы определите запрос в свойсте SQL в том же инспекторе. Active = true возможно только с SELECT, но не с INSERT или DELETE.
Напишите в свойстве SQL
SQL
1
SELECT * FROM users;
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
11.11.2009, 12:31  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
Ну так вы определите запрос в свойсте SQL в том же инспекторе. Active = true возможно только с SELECT, но не с INSERT или DELETE.
Напишите в свойстве SQL
SQL
1
SELECT * FROM users;
В инспекторе объектов после этого свойство true установилось. Но при попытке работать в программе даже если я оставляю всего одну строку: Query1->SQL->Clear(); всё равно вылетает вот это:

0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
11.11.2009, 12:44
Конечно, использование только строки
C++
1
Query1->SQL->Clear();
у вас будет вылетать на ошибку, т.к. вы этой строкой удаляете запись
SQL
1
SELECT * FROM users;
которую установили в инспекторе объектов. Поэтому с начало нужно перевести в неактивное состояние Query1->Active = false. Я же писал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Для начала сделайте неактивным запрос
Query1->Active = false;
// Затем очистим 
Query1->SQL->Clear();
// Затем добавляете ваш запрос вставки в свойство SQL
Query1->SQL->Add("INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')");
// Затем исполняете
Query1->ExecSQL();
// Опять очищаете
Query1->SQL->Clear();
// И записываете в свойство SQL запрос выборки данных
Query1->SQL->Add("SELECT * FROM useres;");
// И переводите в активное состояние
Query1->Active = true;
}
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
11.11.2009, 12:47  [ТС]
Короче видимо придется использовать Table. Ибо Query работать отказывается. Ну допустим ладно... почему бы не сделать это с помощью Table. Только я не очень понимаю КАК.

ВОТ - классический пример из книги! Именно так пишутся книжки. Конкретики- НОЛЬ (типа сам догадайся)!

Цитата Сообщение от Cepera Посмотреть сообщение
да, вот так:
например:
C++
1
2
3
4
// Вставка данных
Table1->Insert();
// Закрепление изменений
Table1->Post();
Блин, ребята... вот ЭТО:
C++
1
Table1->Insert();
Это тупо ПУСТАЯ СТРОКА!!! А данные-то в неё как запихать? Толи в эти скобки их вписывать (наверное при это какие-то знаки препинания должны быть?)... толи где-то отдельной строкой формировать. Указывать ли тип данных или ну его нафиг. Блин... ну непонятно мне ничего из этой пустой строки. Данные-то как заслать?

Добавлено через 1 минуту
Цитата Сообщение от Cepera Посмотреть сообщение
Конечно, использование только строки
C++
1
Query1->SQL->Clear();
у вас будет вылетать на ошибку, т.к. вы этой строкой удаляете запись
SQL
1
SELECT * FROM users;
которую установили в инспекторе объектов. Поэтому с начало нужно перевести в неактивное состояние Query1->Active = false. Я же писал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Для начала сделайте неактивным запрос
Query1->Active = false;
// Затем очистим 
Query1->SQL->Clear();
// Затем добавляете ваш запрос вставки в свойство SQL
Query1->SQL->Add("INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')");
// Затем исполняете
Query1->ExecSQL();
// Опять очищаете
Query1->SQL->Clear();
// И записываете в свойство SQL запрос выборки данных
Query1->SQL->Add("SELECT * FROM useres;");
// И переводите в активное состояние
Query1->Active = true;
}
Дык проблема в том, что полностью этот код ту же ошибку выдает (то есть ему побоку - что одна строка, что все сразу). При чем не на уровне компилятора, а когда уже прогу запускаешь. Выдает ошибку именно при попытке использовать Query.
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
11.11.2009, 14:51
Insert - переводит таблицу в режимы вставки записи, Edit - редактирования, Delete - удаления, Append - добавления записи.
Цитата Сообщение от Fermion Посмотреть сообщение
Это тупо ПУСТАЯ СТРОКА!!! А данные-то в неё как запихать?
Эта строка вставляет запись в таблицу, ну а данные в поля заносятся, например, путем обращения к нужным полям через
C++
1
Table1->FieldByName("FieldName")->AsString = "Данные"; //AsInteger, AsFloat и т.д.
Пример:
C++
1
2
3
4
5
6
7
8
// Добавили запись в таблицу
Table1->Insert();
// Полю FieldName присвоили значение 100
Table1->FieldByName("FieldName")->AsInteger = 100;
// Полю Field присвоили значение из Edit1->Text
Table1->FieldByName("Field")->AsString = Edit1->Text;
// Закрепили изменения
Table1->Post();
Цитата Сообщение от Fermion Посмотреть сообщение
Выдает ошибку именно при попытке использовать Query.
Ошибка именно в запросе
SQL
1
INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')
т.е. он не правильный. Попробуйте взять в кавычки название полей.
SQL
1
INSERT INTO users (\"NickName\", \"Parol\", \"E-mail\") VALUES ('Вася', 'password', 'miltse@mail.ru')
PS: Я все таки за использование Query
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
11.11.2009, 16:17  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
Ошибка именно в запросе
SQL
1
INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')
т.е. он не правильный.
Хм... об этом я как-то не подумал.

Цитата Сообщение от Cepera Посмотреть сообщение
PS: Я все таки за использование Query
В принципе я согласен. Буду пробовать.

P.S. Cepera, спасибо большое.
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 10:51  [ТС]
Короче нифига эта Query не работает... ни так ни сяк.. никак...

Цитата Сообщение от Cepera Посмотреть сообщение
Ошибка именно в запросе
SQL
1
INSERT INTO users (NickName, Parol, E-mail) VALUES ('Вася', 'password', 'miltse@mail.ru')
т.е. он не правильный. Попробуйте взять в кавычки название полей.
Проблема в том, что НИКТО не знает КАК написать запрос ПРАВИЛЬНО. Весь интернет перекопал. Везде только SELECT. Я вообще в шоке... неужели НИКТО и НИКОГДА не заполняет таблицы программно? Неужели все только из таблиц берут и ничего в них не вкладывают? Ну не верю!
Но самая страшная проблема в том, что нет нифига понимая ГДЕ??? об этом хотя бы почитать.

Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Fermionнайди Program Files\Common Files\Borland Shared\BDE\localsql.hlp - там расписан sql
- НЕТУ у меня ни такой директории ни (тем более) такого файла.

Добавлено через 18 минут
Короче такой код:
C++
1
2
3
4
5
Table1->Insert();
Table1->FieldByName("NickName")->AsString = "Vasya";
Table1->FieldByName("Parol")->AsString = "Parolik";
Table1->FieldByName("E-mail")->AsString = "mail@milko.com";
Table1->Post();
тоже нифига не работает и выкидывает такую багу:



Я уже забодался с этими базами данных.... они и правда такие кривые в Builder?

Ну и как же с ЭТИМ быть?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.11.2009, 10:51
Fermion, постов 10 назад я вам уже написал, что у вас некорректно названо поле, create table в bde вообще не дает создать e-mail... следовательно, есть два варианта - создать таблицу с корректными названиями полей, либо добавляйте так:
SQL
1
INSERT INTO users VALUES ('Вася', 'password', 'miltse@mail.ru')
На счет ошибки, там же четко написано, нельзя производить операций с закрытым источником данных, вы бы его для начала открыли. а потом уже писали...
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 10:56  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
у вас некорректно названо поле, create table в bde вообще не дает создать e-mail...
Очень интересно. Фишка в том, что таблица создавалась с помощью Database Desktop и поле E-mail он совершенно спокойно "схавал" и даже совершенно спокойно его отображает в DBGRid
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.11.2009, 10:59
Fermion, отображать он может, потому что запросу select * все равно как называются поля... не знаю, как он у вас схавал, у меня ругается на mail... потому что sql в выборках понимает арифметические операции... вы создавали запросом или конструктором?
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 11:05  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
нельзя производить операций с закрытым источником данных, вы бы его для начала открыли. а потом уже писали...
Цитата Сообщение от Cepera Посмотреть сообщение
для того чтобы использовать другие запросы (типа INSERT, DELETE) применяется метод
C++
1
Query1->ExecSQL();
, при этом свойство Query1->Active должно быть false, ну а после того как вы исполнили нужный вам запрос, возвращайте все в исходное состояние.
Зашибись. Один грит - надо закрыть, другой - открыть. Как вас понимать? Или ЧТО я должен закрыть/открыть? Можно более ясно выражаться? У меня и так башка уже квадратная от этих БД.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.11.2009, 11:10
Fermion, есть два метода модификации таблиц - либо запросами, либо напрямую через таблицу/запрос... если работаете запросами (что быстрее и удобнее), вам надо вызывать метод ExecSQL для запросов всех, кроме select, если же вы пишите данные в таблицу по средствам TTable(в принципе можно при определенных условиях такое делать и с запросами TQuery c select внутри), тогда:
C++
1
2
3
Table1->Open();
// модифицируем, что нам надо 
Table1->Close();
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
14.11.2009, 11:12
Цитата Сообщение от Fermion Посмотреть сообщение
Короче такой код:
Код C++
Table1->Insert();
Table1->FieldByName("NickName")->AsString = "Vasya";
Table1->FieldByName("Parol")->AsString = "Parolik";
Table1->FieldByName("E-mail")->AsString = "mail@milko.com";
Table1->Post();
тоже нифига не работает и выкидывает такую багу:
Эта ошибка появляется у вас при попытке писать данные в неактивный набор данных. Так же ссылка на мое сообщение некорректна, т.к. я там описывал работу с компонентом Query (перечитайте внимательнее).
0
 Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172
14.11.2009, 11:16  [ТС]
Цитата Сообщение от Cepera Посмотреть сообщение
при попытке писать данные в неактивный набор данных.
Хорошо... а как его активировать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2009, 11:16
Помогаю со студенческими работами здесь

Подскажите новичку как настроить права на папки
Linux Debian. php+apache+mysql+phpmyadmin+zend Закачиваю файлы по ftp. Папка /var/www - владелец user, права 755. В папке www...

Подскажите новичку, как связать Access с Delphi?
Есть база данных на Access. Надо создать на Delphi только интерфейс пользователя с базой данных. Как следует создать связь между Aceess и...

Angular 2. Как скрыть / показать всплывающее окно, подскажите новичку
Добрый день. Недавно в Angular 2. Мне нужно создать окно с рядом вкладок, содержащих настройки. Это окно должно всплывать на странице при...

Подскажите новичку.как значения переменной из кода VBA вывести в таблицу Acc-а
В общем можете объясните в подробностях, по возможности, как значения переменной из кода VBA вывести в таблицу Accessа. ниже скрины того,...

Подскажите новичку. Как сделать переход на другую ссылку (редирект) если исходная не открылась (битая)
Например есть фото на одном из бесплатных хостингов, и естественно может пропадать время от времени или же вообще ссылка на фото станет не...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru