powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CREATE TABLE
10 сообщений из 10, страница 1 из 1
CREATE TABLE
    #32855533
poimenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста, подскажите кто-нибудь..
Мне необходимо программно создать файл dbf с мемо-полем
делаю примерно так:
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path.GetTempPath()+";Extended Properties=dBASE IV;";
string strCmd1="CREATE TABLE MyTable (Cust_id NUMERIC(5), Customer CHAR(50), Notes M)";
OleDbConnection cn=new OleDbConnection(strConn);
try
{
cn.Open();
OleDbCommand cmd=new OleDbCommand(strCmd1,cn);
cmd.ExecuteNonQuery();
}
catch(OleDbException oEx)
{
Console.WriteLine("Ошибка: {0}",oEx.Message);
}
finally
{
cn.Close();
}
получаю: Ошибка синтаксиса в инструкции CREATE TABLE.
как правильно написать эту инструкцию?
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855544
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Provider=Microsoft.Jet.OLEDB. 4 . 0 

Для Фокса есть родной OLEDB провайдер. Заюзайте его.
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855550
poimenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал:
string strConn="Provider=VFPOLEDB.1;Data Source="+Path.GetTempPath();
Но тогда таблица не открывается в FoxPro 2.6 - что мне не подходит..
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855566
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если через ОЛЕ ДБ провайдер Фокса можно виполнять фоксовские команды,
попробуйте конвертировать созданную таблицу такой командой:

Select "ВашаТаблица"
Copy To "НоваяТаблица" TYPE FOX2X
USE IN "ВашаТаблица"
DELETE FILE "ВашаТаблица"

Это только предположения. Сам с Оле ДБ провайдером не работал.
Прошу не пинать, если это чушь.
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855585
-ноль-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А так:
string strCmd1="CREATE TABLE MyTable FREE CODEPAGE = 866 (Cust_id NUMERIC(5), Customer CHAR(50), Notes M)";
OleDbConnection cn=new OleDbConnection(strConn);
И еще, в С# DataAdapter имеет визард с проверкой подключения. Попробуй через него. На крйняк, создай файл, типа test.udl, запусти его, настрой соединение, а потом просто в текстовом редакоре открой и скопируй в свой конек строку подключения от туда.
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855586
poimenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую, получаю такой ответ:
Command contains unrecognized phrase/keyword.
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855591
-ноль-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит FREE и СODEPAGE не поддерживает этот провайдер. Что собственно странно, вот счас в окне фокса набрал и команда выполнилась.
Ты попробуй через UDL сформировать строку подключения. У меня к сожалению на этой машине MDAC не установлен, поэтому не смогу тебе
привести строку подключения. И еще, как FOX 2.6 ругается ? Почему открыть не может, что пишет ?
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855602
poimenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Error 15 (Not a database file.) occurred while opening
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855680
-ноль-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заинтесовала меня твоя проблема. Попробовал.
В Фоксе:
Код: plaintext
1.
2.
3.
4.
Local Conn as Object
Conn = CREATEOBJECT("ADODB.Connection")
oConn.ConnectionString = "Provider=VFPOLEDB.1;Data Source=C:\Test_Path;Mode=ReadWrite;Collating Sequence=RUSSIAN"
oConn.Open()
oConn.Execute("CREATE TABLE MyTable (Cust_id N(5), Customer C(50), Notes M)")
Все нормально отработало.

В C#:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
string strConn="Provider=VFPOLEDB.1;Data Source=C:\Test_Path;Mode=ReadWrite;Collating Sequence=RUSSIAN"
string strCmd1="CREATE TABLE MyTable (Cust_id N(5), Customer C(50), Notes M)";
OleDbConnection cn=new OleDbConnection(strConn);
try
{
cn.Open();
OleDbCommand cmd=new OleDbCommand(strCmd1,cn);
cmd.ExecuteNonQuery();
}
catch(OleDbException oEx)
{
Console.WriteLine("Ошибка: {0}",oEx.Message);
}
finally
{
cn.Close();
}

Все отработало. И фокс созданную таблицу открывает.
...
Рейтинг: 0 / 0
CREATE TABLE
    #32855681
-ноль-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Устроню маленькую неточность:
string strConn=@"Provider=VFPOLEDB.1;Data Source=C:\Test_Path;Mode=ReadWrite;Collating Sequence=RUSSIAN";
Вот так.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CREATE TABLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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