powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как сделать чтобы ID объекта совподал с ID записи при загрузке таблицы?
2 сообщений из 2, страница 1 из 1
Как сделать чтобы ID объекта совподал с ID записи при загрузке таблицы?
    #35599061
Erick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в следующем.
Я в Cache создал таблицу Streets которая по своей структуре соответвствует аналогичной таблицы из другой СУБД. Далее я в нее загружаю данные следующим методом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/// Загрузка справочника улиц
ClassMethod COPYSTREETS() As %Integer [ SqlName = COPYSTREETS, SqlProc ]
{
	s Connection=##class(%SQLGatewayConnection).%New()
	d Connection.Connect("GHU3","","")
	  s SQLDEL="SELECT street_code,street_name FROM INFORMIX.streets"
	  s rsd=##class(%Library.ScrollableResultSet).%New("%DynamicQueryGW:SQLGW")
	  s okd=rsd.Prepare(SQLDEL,,Connection)
	  //s okd=rsd.Execute()
	  s ^A=rsd.Execute()
	  while rsd.Next()
	  {
		  s scode=rsd.GetData( 1 )
		  s sname=rsd.GetData( 2 )
		  &sql(INSERT INTO Streets (scode,sname)
		  values (:scode,:sname))	
		
	  }
	d Connection.Disconnect()
	q  1 
}
после загрузки у определенного числа улиц, scode (Код улицы) не совпадает с системным ID объекта. Меня нужно, чтобы совпадения были по всем улицам.
Как это можно сделать?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как сделать чтобы ID объекта совподал с ID записи при загрузке таблицы?
    #35599359
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну.... какое у вас все странное... ID это ID - он не уменьшаеться при откате транзакций или удалении записей из таблицы

А зачем вам чтобы код совпадал с ID - потом вручную добавлять будете - и хана опять не совпадет.

по делу...

1 - завести в таблице Streets ID основанный на своем поле, придеться руками прописать его генерацию - но зато в SQL запросе INSERT его можно будет указывать напрямую

2 - выгрузить таблицу в текстовый файл с разделителем, потом написать на COS програмку которая будет читать строку файла и писать прямым доступом в глобал - имя глобала и позиции полей посмотрите в структуре хранения класса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
цикл по строкам файла {
 /// создание одной записи
 set ^INFORMIX.streetsD(scode)=$LB("",scode,sname)
}
/// коррекция счетчика ID
set ^INFORMIX.streetsD=$o(^INFORMIX.streetsD(""),- 1 )
/// Перестройка индексов у таблицы
w ##class(INFORMIX.streets).%BuildIndexes()
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как сделать чтобы ID объекта совподал с ID записи при загрузке таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]