Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70

Запись данных в таблицу

22.09.2022, 09:30. Показов 2581. Ответов 33

Студворк — интернет-сервис помощи студентам
Приветствую!
Есть необходимость на удаленных серверах, на основе результата отработки скриптов заполнять таблицу в БД.
Не могу понять, как мне правильно сделать запрос на добавление / изменение данных.

Создал БД и таблицу в ней.
В таблице добавил столбцы.

Изначально написал такой код:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function insData ($ID, $server, $DB_Time, $DB_Check, $Data_Time, $Data_Check, $PST_Time, $PST_Check, $System_Time, $System_Check){
    $SQL_DB_Time = "insert into Region_Backups (DB_Time) Values ($DB_Time)"
    $SQL_DB_Check = "insert into Region_Backups (DB_Check) Values ($DB_Check)"
    $SQL_Data_Time = "insert into Region_Backups (Data_Time) Values ($Data_Time)"
    $SQL_Data_Check = "insert into Region_Backups (Data_Check) Values ($Data_Check)"
    $SQL_PST_Time = "insert into Region_Backups (PST_Time) Values ($PST_Time)"
    $SQL_PST_Check = "insert into Region_Backups (PST_Check) Values ($PST_Check)"
    $SQL_System_Time = "insert into Region_Backups (System_Time) Values ($System_Time)"
    $SQL_System_Check = "insert into Region_Backups (System_Check) Values ($System_Check)"
 
    $dataSource = "172.17.0.16"
    $database = "Regions_Report_Backup"
    $login = 'user'
    $pass = "Pa$sworD"
 
    $connection = New-Object -com "ADODB.Connection"
    $ConnectionString = "Provider=SQLOLEDB.1;
                         Data Source=$dataSource;
                         Initial Catalog=$database;
                         User ID=$login;
                         Password=$pass;"
    $connection.Open($ConnectionString)
 
    $connection.Execute("insert into Region_Backups (ID) Values ($ID)")
    $connection.Execute("insert into Region_Backups (Server) Values ($Server)")
    $connection.Execute($SQL_DB_Time)
    $connection.Execute($SQL_DB_Check)
    $connection.Execute($SQL_Data_Time)
    $connection.Execute($SQL_Data_Check)
    $connection.Execute($SQL_PST_Time)
    $connection.Execute($SQL_PST_Check)
    $connection.Execute($SQL_System_Time)
    $connection.Execute($SQL_System_Check)
 
    $connection.Close()
}
 
$id = 1
$srv = 's10002'
$db_t = '03.09.2022 14:43:42'
$db_c = 'OK'
$data_t = '03.09.2022 16:48:22'
$data_c = 'OK'
$pst_t = $null
$pst_c = 'fail'
$system_t = '03.09.2022 18:13:32'
$system_c = 'OK'
 
insData -ID $id -server $srv -DB_Time $db_t -DB_Check $db_c -Data_Time $data_t -Data_Check $data_c -PST_Time $pst_t -PST_Check $pst_c -System_Time $system_t -System_Check $system_c
Но, где-то мне написали, что добавление (изменение) данных в таблице, должно быть в одной строке.
И здесь я не могу понять, как мне это реализовать.
Пытался делать так:
Code
1
$connection.Execute("insert into Region_Backups (ID) Values ($ID) (Server) Values ($Server) (DB_Time) Values ($DB_Time) (DB_Check) Values ($DB_Check) (Data_Time) Values ($Data_Time) (Data_Check) Values ($Data_Check) (PST_Time) Values ($PST_Time) (PST_Check) Values ($PST_Check) (System_Time) Values ($System_Time) (System_Check) Values ($System_Check)")
Неправильный синтаксис...
Судя по всему, должны быть какие-то разделители между заголовками столбцов, не могу найти какие.
Помогите, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2022, 09:30
Ответы с готовыми решениями:

Запись отсутсвующих или отличающихся данных в таблицу через хранимую процедуру
Здравствуйте ФОРУМЧАНЕ!!! Недавно столкнулся с такой необходимостью. Есть хранимая процедура через которую происходит запись данных в...

Тригер на Update всей таблицы и запись стараых данных в таблицу History
Тело тригера: CREATE TRIGGER ON .. FOR update AS BEGIN DECLARE @id int; DECLARE @new_str nvarchar(32); SET @id = (select...

Запись данных в таблицу с другого сервера (Что-то типа Select * into table from exec ('query')
Всем привет! Нужно записать в таблицу данные с другого сервака. Данные могу получить только с помощью exec (' select * from t')....

33
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.09.2022, 12:19
Студворк — интернет-сервис помощи студентам
Зачем делать $conn.Dispose(), а потом пытаться повторно использовать?
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
28.09.2022, 13:03  [ТС]
invm, спасибо, понял )
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
30.09.2022, 11:51  [ТС]
Помогите пожалуйста построить условную конструкцию.
Code
1
2
3
4
если есть ID (например) $id, то 
    update dbo.Table_1 set db_time = '$db_t',   db_size = '$db_s',  db_check = '$db_c', data_time = '$data_t', data_size = '$data_s',   data_check = '$data_c', pst_time = '$pst_t', pst_size = '$pst_s', pst_check = '$pst_c', system_time = '$system_t', system_size = '$system_s',   system_check = '$system_c'
иначе
    INSERT INTO dbo.Table_1 (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) VALUES ('$id', '$srv', '$db_t', '$db_s', '$db_c', '$data_t', '$data_s', '$data_c', '$pst_t', '$pst_s', '$pst_c', '$system_t', '$system_s', '$system_c')
Если не учитывать обращение к самой БД, то в PowerShell, я бы это сделал так:
Code
1
2
3
4
5
6
7
8
$select = "select * from dbo.Table_1 where id like $id"
if ($select){
    update dbo.Table_1 set db_time = '$db_t',   db_size = '$db_s',  db_check = '$db_c', data_time = '$data_t', data_size = '$data_s',   data_check = '$data_c', pst_time = '$pst_t', pst_size = '$pst_s', pst_check = '$pst_c', system_time = '$system_t', system_size = '$system_s',   system_check = '$system_c'
}
else
{
    INSERT INTO dbo.Table_1 (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) VALUES ('$id', '$srv', '$db_t', '$db_s', '$db_c', '$data_t', '$data_s', '$data_c', '$pst_t', '$pst_s', '$pst_c', '$system_t', '$system_s', '$system_c')
}
А как это сделать на T-SQL, я, пока, понять не могу

Добавлено через 39 минут
Предполагаю, что это должно быть как-то так:
103 - ID (для каждого отчета от регионального сервера свой ID)
Code
1
2
3
4
5
6
7
use Regions_Report_Backup;
go
if OBJECT_ID ('dbo.Table_1', 103) is null
    insert into dbo.Table_1 (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) value (103, 'S10303', '2022.09.28', '4340133137', 'true', '2022.09.30', '7791564650', 'true', '2022.09.29', '5337385942', 'true', '2022.09.24', '27660377957',    'true')
else
    update dbo.Table_1 set ID = '103', server = 'S10303',   db_time = '2022.09.28', db_size = '4340133137', db_check = 'true',  data_time = '2022.09.30', data_size = '7791564650', data_check = 'true', pst_time = '2022.09.29', pst_size = '5337385942', pst_check = 'true', system_time = '2022.09.24', system_size = '27660377957', system_check = 'true'
go
Но сиквел выдают ошибку:
Сообщение 102, уровень 15, состояние 1, строка 2
Неправильный синтаксис около конструкции "value".
почему он ругается на VALUE?
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
30.09.2022, 14:07
Цитата Сообщение от lcnet Посмотреть сообщение
почему он ругается на VALUE?
потому что insert не имеет такого слова в своем синтаксисе

Добавлено через 3 минуты
ну и познакомсь с merge
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
30.09.2022, 14:24  [ТС]
Аватар, спасибо!
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
01.10.2022, 10:49  [ТС]
Аватар, подскажите, пожалуйста.
Я сделал конструкцию с MERGE, но она сработала не так, как мне надо.
Проверка происходит по ID (первый параметр в строке)
У меня в таблице было 11 строк, а после отработки MERGE их стало 22. Т.е. MERGE добавила столько же строк, а мне надо только 1 строку добавить, если ее не было.
При этом, если параметр был найден (как я это понимаю), добавляется 11 строк (столько же сколько было + еще 1 строка.
SQL
1
2
3
4
5
6
7
MERGE Table_3 tgt
USING Table_3 src
ON (src.id = 49)
WHEN MATCHED THEN
    UPDATE SET tgt.db_time = '2022.09.28',  tgt.db_size = '4340133137', tgt.db_check = 'true',  tgt.data_time = '2022.09.30', tgt.data_size = '7791564650', tgt.data_check = 'true', tgt.pst_time = '2022.09.29', tgt.pst_size = '5337385942', tgt.pst_check = 'true', tgt.system_time = '2022.09.24', tgt.system_size = '27660377957', tgt.system_check = 'true'
WHEN NOT MATCHED THEN
    INSERT (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) VALUES (49, 'S4903', '2022.09.28', '4340133137', 'true', '2022.09.30', '7791564650', 'true', '2022.09.29', '5337385942', 'true', '2022.09.24', '27660377957',  'true');
Строки, которые были изначально:
Кликните здесь для просмотра всего текста

idserverdb_timedb_sizedb_checkdata_timedata_sizedata_checkpst_timepst_sizepst_checksystem_timesystem_sizesystem_check
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
80S80032022.09.294139253059true2022.09.3011849280222true2022.09.2913395501635true2022.09.2411494904987true
47S47032022.09.294237179986true2022.09.3029719741995true2022.09.2911115880350true2022.09.2420283667757false
62S62032022.09.294485077900true2022.09.3020974545666true2022.09.2916644986718true2022.09.2419288020772true
53S53032022.09.294179191415true2022.09.3016790741532true2022.09.309738087713true2022.09.2423685046699true
38S38022022.09.294727694873true2022.09.3039583084362true2022.09.2911115700516true2022.09.2419397851442true
39S3903Empty0Empty2022.09.2920016980757trueEmpty0Empty2022.09.2420965953133true
34S34032022.09.294147524657true2022.09.3029227002345true2022.09.2919213421973true2022.09.2420881491756true
3S03032022.09.294571709550true2022.09.3029737341402true2022.09.2937025045837true2022.09.2420013355063true
52S52032022.09.294097872737true2022.09.3047535526936true2022.09.294164864155true2022.09.2423334953379true
36S36012022.09.295454344878true2022.09.3044019878040true2022.09.29739626true2022.09.2420248139720false

А получил это:
Кликните здесь для просмотра всего текста

idserverdb_timedb_sizedb_checkdata_timedata_sizedata_checkpst_timepst_sizepst_checksystem_timesystem_sizesystem_check
NULLserver2022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
80S80032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
47S47032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
62S62032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
53S53032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
38S38022022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
39S39032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
34S34032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
3S03032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
52S52032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
36S36012022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true
49S49032022.09.284340133137true2022.09.307791564650true2022.09.295337385942true2022.09.2427660377957true


Что я делаю не так?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
01.10.2022, 11:01
Цитата Сообщение от lcnet Посмотреть сообщение
Что я делаю не так?
Вот это - ON (src.id = 49)
Нужно еще src.id = tgt.id
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
01.10.2022, 11:18  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Нужно еще src.id = tgt.id
Так src и tgt это одна и та же таблица

Добавлено через 8 минут
ну и плюс к этому, эта конструкция будет работать из PowerShell, и вместо 49 будет переменная
Примерно так:
src.id = $id
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
01.10.2022, 13:09
Цитата Сообщение от lcnet Посмотреть сообщение
Так src и tgt это одна и та же таблица
А что таблицу нельзя соединить саму с собой?
У вас декартово произведение в итоге, поэтому и такой результат.

ЗЫ: Сервер не умеет угадывать намерения разработчика.
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
01.10.2022, 13:28  [ТС]
invm, теперь знаю что можно. Спасибо! )
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
01.10.2022, 14:20
Кстати, если таблица соединяется сама с собой, зачем ветка when matched?
0
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
01.10.2022, 14:42  [ТС]
invm, это мои первые шаги в T-SQL, по этому я не могу ответить на Ваш вопрос )

Добавлено через 1 минуту
Мне кажется, что я что-то не так делаю... )
Мне нужно:
Если ID существует, то заменить в строке с данным ID часть значений.
Если не существует, то добавить новую строку со всеми значениями.

А по факту получатся, что добавляет строку, если ее не было, но во всех остальных строках меняет данные на те что я пытаюсь изменить, если строка найдена.
SQL
1
2
3
4
5
6
7
MERGE Table_1 tgt
USING Table_1 src
ON (src.id = tgt.id)
WHEN MATCHED THEN
    UPDATE SET tgt.db_time = '2022.09.28',  tgt.db_size = '4340133137', tgt.db_check = 'true',  tgt.data_time = '2022.09.30', tgt.data_size = '7791561111', tgt.data_check = 'true', tgt.pst_time = '2022.09.29', tgt.pst_size = '5337385942', tgt.pst_check = 'true', tgt.system_time = '2022.09.24', tgt.system_size = '27660377957', tgt.system_check = 'true'
WHEN NOT MATCHED THEN
    INSERT (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) VALUES (49, 'S4903', '2022.09.28', '4340133137', 'true', '2022.09.30', '7791564650', 'true', '2022.09.29', '5337385942', 'true', '2022.09.24', '27660377957',  'true');
Либо меняет данные в строке, если она найдена, но еще добавляет такое же количество одинаковых строк.
SQL
1
2
3
4
5
6
7
MERGE Table_1 tgt
USING Table_1 src
ON (src.id = tgt.id AND src.id = 49)
WHEN MATCHED THEN
    UPDATE SET tgt.db_time = '2022.09.28',  tgt.db_size = '4340133137', tgt.db_check = 'true',  tgt.data_time = '2022.09.30', tgt.data_size = '7791561111', tgt.data_check = 'true', tgt.pst_time = '2022.09.29', tgt.pst_size = '5337385942', tgt.pst_check = 'true', tgt.system_time = '2022.09.24', tgt.system_size = '27660377957', tgt.system_check = 'true'
WHEN NOT MATCHED THEN
    INSERT (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) VALUES (49, 'S4903', '2022.09.28', '4340133137', 'true', '2022.09.30', '7791564650', 'true', '2022.09.29', '5337385942', 'true', '2022.09.24', '27660377957',  'true');
Добавлено через 4 минуты
Цитата Сообщение от invm Посмотреть сообщение
Кстати, если таблица соединяется сама с собой, зачем ветка when matched?
У меня же два варианта действий, если существует и, если не существует
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
01.10.2022, 15:10
Лучший ответ Сообщение было отмечено lcnet как решение

Решение

Цитата Сообщение от lcnet Посмотреть сообщение
Мне нужно:
Если ID существует, то заменить в строке с данным ID часть значений.
Если не существует, то добавить новую строку со всеми значениями.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
with src (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check) as
(
 select
  49, 'S4903', '2022.09.28', '4340133137', 'true', '2022.09.30', '7791564650', 'true', '2022.09.29', '5337385942', 'true', '2022.09.24', '27660377957',  'true'
)
MERGE Table_1 tgt
USING src ON src.id = tgt.id
WHEN MATCHED THEN
    UPDATE SET db_time = src.db_time, db_size = src.db_size, db_check = src.db_check,  data_time = src.data_time, data_size = src.data_size, data_check = 'true', pst_time = '2022.09.29', pst_size = '5337385942', pst_check = 'true', system_time = '2022.09.24', system_size = src.system_size, system_check = src.system_check
WHEN NOT MATCHED THEN
    INSERT (id, server, db_time, db_size, db_check, data_time, data_size, data_check, pst_time, pst_size, pst_check, system_time, system_size, system_check)
    VALUES (src.id, src.server, src.db_time, src.db_size, src.db_check, src.data_time, src.data_size, src.data_check, src.pst_time, src.pst_size, src.pst_check, src.system_time, src.system_size, src.system_check);
1
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 70
01.10.2022, 15:24  [ТС]
invm, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.10.2022, 15:24

Запись данных формы в таблицу
HI, ALL не получается внести данные из формы amb в таблицу amb, похожие темы в форуме мне не помогли по причине моей неопытности( Кто...

Запись данных из XML в таблицу
Всем Привет!!! Есть такая задача надо записать данный из XML в таблицу. Из интернета нашел пример declare x varchar2(4000) :=...

Запись данных с файла в таблицу
Собственно, есть задание записать данные с файла в таблицу, пробовал так: LOAD DATA INFILE 'E:/OpenServer/OSPanel/data.txt' INTO...

Запись данных в таблицу по клику в списке
Здравствуйте. Есть четыре таблицы клиент, работник, товар и заказ. Нужно с помощью формы добавить данные в таблицу заказ, сначала мы...

Считывание данных из поля и запись их в таблицу
Добрый день! Нужна помощь в написании кода. Есть форма, которая содержит 2 поля и кнопку. нужно чтобы на нажатию кнопки происходил...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru