powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / создание таблички OleDbCommand вызывает ошибку
12 сообщений из 12, страница 1 из 1
создание таблички OleDbCommand вызывает ошибку
    #35634082
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток! Пытаюсь создать табличку в DBF.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
            OleDbCommand cmd = new OleDbCommand(szCmd, conn);
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

Допустим создаем таблтчку из 15 полей типа char(254), все нормально. А если вот 16 полей такого типа, то говорит, что не вмещается уже это поле.

Мне надо от 30 до 50 полей создавать, конечно некоторые поля и по 50 символов, но всеравно, думаю эта проблема решается как то.

Вот запрос на создание

Код: plaintext
CREATE TABLE TABLE1.DBF (Name1 char(254),Name2 char(254),Name3 char(254),Name4 char(254),Name5 char(254),Name6 char(254),Name7 char(254),Name8 char(254),Name9 char(254),Name10 char(254),Name11 char(254),Name12 char(254),Name13 char(254),Name14 char(254),Name15 char(254),Name16 char(254))

Я пока разбираюсь с возможностями dbf'a.


Вот весь код для создания:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 private void button1_Click(object sender, EventArgs e)
        {
            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + ";Extended Properties=dBASE IV;User ID=Admin;Password=";

            OleDbConnection conn = new OleDbConnection(connStr);
            try
            {
                conn.Open();
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("не удалось соединиться\n" + ex.Message);
                return;
            }

            try { System.IO.File.Delete("TABLE1.DBF"); }
            catch { }

            string szCmd = "CREATE TABLE TABLE1.DBF (";
            int N=16;
            for (int i = 1; i <= N; i++)
            {
                szCmd += "Name" + i.ToString() + " char(254),";
            }
            szCmd = szCmd.Replace("Name" + N.ToString() + " char(254),", "Name" + N.ToString() + " char(254))");
            conn.Open();
            OleDbCommand cmd = new OleDbCommand(szCmd, conn);
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


может чтото не то в строке подключения...?? помогите пожалуйста с этим разобраться..
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35634085
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка:

Код: plaintext
Поле не помещается в записи.
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35634088
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще вот может надо подключаться к dBase V??
Прросто вижу в конфигурации поставщиков ODBC таку картинку:
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35634137
Фотография Ъй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfyможет чтото не то в строке подключения...?? помогите пожалуйста с этим разобраться..
Курить спецификацию на используемый ODBC-драйвер - запросто может быть, что это какое-то из его ограничений.
P.S. Name1...Name16, ПМСМ, нездорово попахивает кривым дизайном базы. Может, ст о ит пересмотреть его?
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35634212
TeXpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_HeckfyПытаюсь создать табличку в DBF... Руслан, не парься, пиши (и читай) DBF напрямую, без всяких драйверов. Тут (третий с конца пост, автор -- Delirium ) найдёшь класс, где есть методы для создания, чтения и присобачивания. Только размеры полей надо подогнать под себя -- я, например, сделал hash-таблицу (поле-длина), и скармливаю как ещё один параметр. Тьфу-тьфу-тьфу, прекрасно пашет
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35635876
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЪйKhusainov_Heckfyможет чтото не то в строке подключения...?? помогите пожалуйста с этим разобраться..
Курить спецификацию на используемый ODBC-драйвер - запросто может быть, что это какое-то из его ограничений.
P.S. Name1...Name16, ПМСМ, нездорово попахивает кривым дизайном базы. Может, ст о ит пересмотреть его?

Name1.....Name16 это для примера))) естесственно там поля необходимые уже в ТЗ подготовлены!)) И будут другие.
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636418
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TeXpertKhusainov_HeckfyПытаюсь создать табличку в DBF... Руслан, не парься, пиши (и читай) DBF напрямую, без всяких драйверов. Тут (третий с конца пост, автор -- Delirium ) найдёшь класс, где есть методы для создания, чтения и присобачивания. Только размеры полей надо подогнать под себя -- я, например, сделал hash-таблицу (поле-длина), и скармливаю как ещё один параметр. Тьфу-тьфу-тьфу, прекрасно пашет


Спасибо, попытаюсь разобраться с этим)
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636423
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут идет строчка

Код: plaintext
1.
// Формат dBASE III 2.0
   byte[] buffer = new byte[]{0x03, 0x63, 0x04, 0x04}; // Заголовок  4 байта

можно пример как в dBase IV или V?
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636439
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка синтаксиса FROM пишет, когда пытается данные из нее селектом получить.
SELECT *FROM TABLE.DBF
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636446
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что я в ASP создаю на серваке файл DBF, а стороние разработчики должны на клиенте уже получть это DBF файл, и делать с ним уже что надо. Вот только я не знаю, этот файл им подойдет ли... ну а так ссылка очень хороша!)

Командером открыл созданную табличку, написано что провайдер у нее FoxPro
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636447
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать чтоб был не FoxPro а dBase?

Я так понимаю надо чтото в заголовке файла менять, только что...???
...
Рейтинг: 0 / 0
создание таблички OleDbCommand вызывает ошибку
    #35636453
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, проблему решил!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
// Создаю таблицу
            System.IO.File.Delete(Folder + DT.TableName+".DBF");
            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath +
                            ";Extended Properties=dBASE 5.0;User ID=Admin;Password=";

            OleDbConnection conn = new OleDbConnection(connStr);
            try
            {
                conn.Open();
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("не удалось соединиться\n" + ex.Message);
                return;
            }
            conn.Open();
            OleDbCommand cmd = new OleDbCommand("CREATE TABLE "+ DT.TableName + ".DBF (SSS char(1))", conn);
            cmd.ExecuteNonQuery();
            conn.Close();

            System.IO.FileStream FS = new System.IO.FileStream(Folder + DT.TableName + ".DBF", System.IO.FileMode.OpenOrCreate);
            // Формат dBASE III 2.0


Модератор: Тема перенесена из форума "C#.NET".
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / создание таблички OleDbCommand вызывает ошибку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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