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

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

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



Зарегистрирован: 16.05.2010
Сообщения: 7

СообщениеДобавлено: Ср Май 19, 2010 10:10 am    Заголовок сообщения: Создание таблицы с переменным типом данных Добавить ответ со ссылкой на данный текст

Доброго времени суток, коллеги!
Пытаюсь создать таблицу, где тип данных объявлен не явно, то есть пытаюсь подставить переменную.

В случае с заданием имени столбца все проходит гладко, однако когда я подставляю переменную вместо типа данных столбца, то компилятор в строчке Server hodbc Create Table s_1 (Field(3) Type(3)) выдает ошибку "missing '=' assignment to Type"



Fetch Rec 1 From temp
s_1 = temp.col2

i = 1
While i <= n
Fetch Rec i From temp2
Field(i)=temp2.col2
i = i + 1
Wend

t = 1
While t <= n
Fetch Rec t From temp2
Type(t)=temp2.col3
t = t + 1
Wend
call create1
end sub

sub create1
hodbc = server_connect("ODBC", "DSN=База данных MS Access")
Server hodbc Create Table s_1 (Field(3) Type(3))


В чем может быть проблема?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Ср Май 19, 2010 11:24 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Пользуйтесь командой:
hstmt = Server_Execute(hdbc, "CREATE TABLE ...")
там второй параметр строка - создайте предварительно как вам нужно и отправьте серверу на исполнение.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
kamennov



Зарегистрирован: 16.05.2010
Сообщения: 7

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

Андрей Могильный писал(а):
Пользуйтесь командой:
hstmt = Server_Execute(hdbc, "CREATE TABLE ...")
там второй параметр строка - создайте предварительно как вам нужно и отправьте серверу на исполнение.


Спасибо за ответ..
Этот вариант не подходит потому, что тут явно задается и название таблицы и название поля и тип данных поля.
В область этой команды "CREATE TABLE ..." не получается вставить переменные, причем ни для названия таблицы, ни для чего-либо.

Если ставлю переменную S_1, в качестве названия таблицы, то на сервере создается таблица с названием S_1, а не со значением переменной.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

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

Вы в переменную типа строка сконкатенируйте все что вам надо и подавайте!
hstmt = Server_Execute(hdbc, "CREATE TABLE "+S1+" поля "+Str$(fieldtype))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
kamennov



Зарегистрирован: 16.05.2010
Сообщения: 7

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

Андрей Могильный писал(а):
Вы в переменную типа строка сконкатенируйте все что вам надо и подавайте!
hstmt = Server_Execute(hdbc, "CREATE TABLE "+S1+" поля "+Str$(fieldtype))


Большое спасибо))
Помогло
hstmt = Server_Execute(hodbc, "CREATE TABLE "+S_1+" ("+Field(3)+" "+Type(3)+")")

Именно то чего я и добивался...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru