www.map-info.ru :: Просмотр темы - Программное создание таблицы в Oracle
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Hirurg



Зарегистрирован: 25.05.2010
Сообщения: 14
Откуда: Астрахань

СообщениеДобавлено: Вт Май 25, 2010 2:32 pm    Заголовок сообщения: Программное создание таблицы в Oracle Добавить ответ со ссылкой на данный текст

Добрый день

Пытаюсь в MapBasiс написать скрипт создания таблицы в Oracle.
И что бы она потом могла открыться с прямым доступом в Mapinfo.
При создании таблицы не посредственно из Mapinfo (Файл-->Новая таблица) и указанием места сохранения в уже подключенную базу все происходит как надо, таблица заносится в MAPINFO_МAPCATALOG, создаются все индексы и она сразу же открывается в Mapinfo.


У меня пока, что получилось следующее
sub create1
hodbc = server_connect("ORAINET", "SRVR=;UID=Mapinfo;PWD=1")
hstmt = Server_Execute(hodbc, "CREATE TABLE Mapinfo."+S_1+" ("+Field(1)+" "+Tipe(1)+", MI_STYLE VARCHAR2(254), GEOLOC MDSYS.SDO_GEOMETRY , MI_PRINX NUMBER(10,0), PRIMARY KEY (MI_PRINX) ENABLE)")
Server hstmt Close
hstmt = Server_Execute(hodbc, "CREATE INDEX Mapinfo."+S_1+"_SX ON "+S_1+" (GEOLOC)INDEXTYPE IS MDSYS.SPATIAL_INDEX")
Server hstmt Close
end sub


После запуска скрипта, таблица создается на сервере с индексами, но выдаются ошибки:
ORA-29588
ORA-13203
ORA-06512
А когда я пытаюсь ее открыть в Mapinfo, выдает ошибку "Таблица должна иметь колонку с числовым индексом"

Подскажите пожалуйста, где я, что пропустил.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hirurg



Зарегистрирован: 25.05.2010
Сообщения: 14
Откуда: Астрахань

СообщениеДобавлено: Ср Май 26, 2010 10:21 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Выход найден.))
Пришлось жульничать))


sub create1
hodbc = server_connect("ORAINET", "SRVR=;UID=Mapinfo;PWD=1")
Server 2 Create Table """MAPINFO""."""+S_1+"""" (Поле1 Char(10),MI_STYLE Char(254)) KeyColumn MI_PRINX ObjectColumn GEOLOC CoordSys Earth Projection 1, 0
hstmt = Server_Execute(hodbc, "ALTER TABLE "+S_1+" DROP COLUMN Поле1 CASCADE CONSTRAINTS")
Server hstmt Close
hstmt = Server_Execute(hodbc, "ALTER TABLE "+S_1+" ADD ("+Field(1)+" "+Tipe(1)+")")
Server hstmt Close
hstmt = Server_Execute(hodbc, "INSERT INTO MAPINFO.MAPINFO_MAPCATALOG(SPATIALTYPE, TABLENAME, OWNERNAME, SPATIALCOLUMN, DB_X_LL, DB_Y_LL, DB_X_UR, DB_Y_UR, COORDINATESYSTEM, SYMBOL, XCOLUMNNAME, YCOLUMNNAME, RENDITIONTYPE, RENDITIONCOLUMN, RENDITIONTABLE) VALUES( 13.30, 'OFORMLENIE_DOR_SETI', 'MAPINFO', 'GEOLOC', NULL, NULL, NULL, NULL, 'Earth Projection 1, 0', 'Symbol (35, 0, 12) Pen (1, 2, 0) Pen (1, 2, 0) Brush (2, 16777215, 16777215) ', 'NO_COLUMN', 'NO_COLUMN', 1, 'MI_STYLE', NULL)")
Server hstmt Close
Register Table ""+S_1+"" TYPE ODBC TABLE "Select * From ""MAPINFO""."""+S_1+"""" CONNECTION "SRVR=;UID=Mapinfo;PWD=1" toolkit "ORAINET" Autokey ON Versioned Off Workspace "" ParentWorkspace "" Into "C:\Users\Hirurg\Documents\"+S_1+".tab"
Open Table "C:\Users\Hirurg\Documents\"+S_1+".tab" Interactive
Map From S_1
end sub


Теперь при не явном задании названия столбцов, колонок и типов данных, создает таблицу в Oracle и открывает в Mapinfo для редактирования и нанесения пространственных данных Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru