CREATE TABLE

poimenov
Дата: 06.01.2005 14:43:17
Пожалуйста, подскажите кто-нибудь..
Мне необходимо программно создать файл 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.
как правильно написать эту инструкцию?
Стр
Дата: 06.01.2005 15:36:20
CREATE TABLE MyTable (Cust_id NUMERIC(5), Customer CHAR(50), Notes Memo)
Alex_2003
Дата: 06.01.2005 16:07:16
А я бы предложил такой вариант:
CREATE TABLE MyTable (Cust_id NUMERIC, Customer CHAR(50), Notes MEMO)
poimenov
Дата: 06.01.2005 16:18:36
Спасибо за ответы, но.. они не работают. Пробовал такой вариант:
string strConn="Provider=VFPOLEDB.1;Data Source="+Path.GetTempPath();
Но создаваемый dbf не открывается в FoPro 2.6 - что мне не подходит :-(
Стр
Дата: 06.01.2005 16:42:56
.. они не работают
в чем это выражается ???
exception или что то другое ?
Worobjoff
Дата: 06.01.2005 16:45:29
Похоже у вас такие же проблемы как и у меня.
Никак не могу "приручить" Jet для работы с DBASE разных версий.
То крозебяки покажет, то UCASE не работает, то еще что.

Создаю DSN (Visal FoxPro Driver) - все работает. И ваш пример то же.
poimenov
Дата: 06.01.2005 17:34:01
да, сообщает: Ошибка синтаксиса в инструкции CREATE TABLE.
кузя
Дата: 06.01.2005 22:16:49
ошибка типа (англ. вариант)
Syntax error in CREATE TABLE statement
возникает только при нарушении синтаксиса SQL: отсутствие скобки или лишняя скобка, нет запятой и пр.

string path=@"C:\TEMP";
string strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+";Extended Properties=dBASE IV;";
			
string strCmd1="CREATE TABLE MyTable (Cust_id NUMERIC, Customer CHAR(50), Nоtes MEMO)";
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();
}
- это работает


---
какая ОС ?
какая версия MDAC ?