powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание таблицы FoxPro через SQL
12 сообщений из 12, страница 1 из 1
Создание таблицы FoxPro через SQL
    #32128292
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста, как создать таблицу *.DBF из Visual Basica через ADO, используя SQL... Почему то CREATE TABLE не работает... Таблица не создается...
Заранее спасибо...
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32128355
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу поспорить, что в CREATE TABLE используется ситаксис, который фокс не понимает. Можно строку команду полностью?
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32128429
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример на vbs:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim conn, path
path =  "c:\" 
Set conn = CreateObject( "ADODB.Connection" )
conn.Open ( "Provider=Microsoft.Jet.OLEDB.4 . 0 ;Data Source=" & path &  ";User ID=Admin;Password=;Extended Properties=dBase IV" )
conn.Execute  "create table dbftable (ID_N int,dt date,info char(100 ))"
conn.Close
Set conn = Nothing
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32128805
Фотография maloi_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:

Код: plaintext
create table dbftable (ID_N N,dt D,info c( 100 ))
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32128813
Фотография maloi_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И строку соединения попробуй поменять на
Provider=VFPOLEDB.1;Data Source=<path>;Password="";Collating Sequence=MACHINE

Правда все это будет работать, если у тебя установлен MDAC
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32128992
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тот код, который использую я:
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
cnn.Open "Driver=Microsoft Visual FoxPro Driver;" & _
"SourceType=DBF;" & _
"BackgroundFetch=Yes;Exclusive=No;Null=No;" & _
"SourceDB=C:\TESTBASE"
cnn.Execute "CREATE TABLE tbldbf (p1 INTEGER, sum1 f, sum2 f, sum3 f, _
k CHAR(6))"
cnn.close
Запрос вроде бы составлен нормально...
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32129024
Фотография maloi_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вся проблема в том, что ты не правильно указываешь типы полей. Если я не ошибаюсь Microsoft Visual FoxPro ODBC Driver поля следующих типов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
N - Число с десятичными знаками
C - Строка
D - Дата
M - Мемо
F - C плавающей точкой
L - Логическое
G - General
и т.д.
Подробности смотри в справке по VFP драйверу (Vfpdrv.hlp - лежит в System32 в XP). 
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32129026
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Гость

Кто ж ставит переносы строк в нутри литерала???
Либо так
cnn.Execute "CREATE TABLE tbldbf (p1 INTEGER, sum1 f, sum2 f, sum3 f, k CHAR(6))"
либо так
cnn.Execute "CREATE TABLE tbldbf (p1 INTEGER, sum1 f, sum2 f, sum3 f, " & _
"k CHAR(6))"
должно работать
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32129531
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32129859
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вопрос немного подругому поставлю: а должен ли на диске, в каталоге, угазанном в пути строки Connection появиться даблица *.dbf сразу после выполнения CREATE TABLE?
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32129914
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня появляются сразу.
Код: plaintext
1.
2.
3.
*!* подключение к free tables фокса через odbc в том же рабочем каталоге
h=SQLCONNECT() 
?SQLEXEC(h, "CREATE TABLE tbldbf (p1 INTEGER, sum1 f, sum2 f, sum3 f, k CHAR(6 ))")  &&  1 
?FILE( "tbldbf.dbf" ) && .T.
...
Рейтинг: 0 / 0
Создание таблицы FoxPro через SQL
    #32130153
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за помощь... Сработала отлично такая строчка:
"CREATE TABLE 'C:\TESTBASE\tbldbf' (p1 N, sum1 F, sum2 F, sum3 F, k C(6))"
После указания полного пути в названии таблицы. Таблица была создана сразу после выполнения этого запроса.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание таблицы FoxPro через SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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