Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
1
.NET 2.x

Как удалить столбцы из таблицы (DBF)

01.01.2014, 21:11. Показов 4465. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане. Сразу приношу вам извинение за возможно глупый вопрос, я не профи, а всего лишь самоучка-любитель. Поиском пользовался, скоро уже мозоли на глазах будут.
Озвучу в крацие суть задачи (проблемы): не могу ни как удалить столбцы из таблицы (DBF)

Пробовал через OleDb:
VB.NET
1
2
3
4
5
6
7
8
Dim cnn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=dBASE IV;User ID=Admin;Password=;")
        Dim cmd As OleDbCommand = New OleDbCommand
        cmd.Connection = cnn
        cmd.CommandType = CommandType.Text
        cmd.CommandText = "ALTER TABLE pdl DROP COLUMN dtr"
        cnn.Open()
        cmd.ExecuteNonQuery()
        cnn.Close()
Пробовал через Odbc:
VB.NET
1
2
3
4
5
6
7
8
Dim cnn As OdbcConnection = New OdbcConnection("Dsn=Файлы dBASE;dbq=C:\;defaultdir=C:\;driverid=533;maxbuffersize=2048;pagetimeout=5;Exclusive=true;Deleted=Yes")
        Dim cmd As OdbcCommand = New OdbcCommand
        cmd.Connection = cnn
        cmd.CommandType = CommandType.Text
        cmd.CommandText = "ALTER TABLE pdl DROP COLUMN dtr"
        cnn.Open()
        cmd.ExecuteNonQuery()
        cnn.Close()
В обоих случаях ошибка: "Невозможно изменение структуры таблицы 'pdl'. База данных доступна только для чтение".
Дайте пожалуйста дельный совет, что я делаю не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2014, 21:11
Ответы с готовыми решениями:

КАК ПРОЧИТАТЬ с нолевого столбца таблицы DBF
Среда Visual Basic STUDIO’2010 Professional Dim dBaseDataReader As...

Как совсем удалить записи из таблицы DBF?
DELETE * From table1 where... - только помечает записи как удаленные. А как физически удалить...

Копирование данных из одной таблицы dbf в шаблон dbf
Есть источник файл med.dbf с данными, необходимо перенести часть данных в файл-шаблон med.dbf....

Как удалить записи с БД в формате .dbf
Всем доброго времени суток у меня такой вопрос: как программно удалить записи с БД в формате .dbf,...

31
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
02.01.2014, 21:53 21
Author24 — интернет-сервис помощи студентам
Кстати, в таблице нет колонки с именем dtr. Если таблица не особо большая, то можно открыть ее в Excel. Я открыл ее при помощи Libre Office, добавил две записи (pdl1.dbf), удалил одну колонку (pdl2.dbf).
Вложения
Тип файла: zip deldbf.zip (455 байт, 7 просмотров)
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
02.01.2014, 21:59  [ТС] 22
Цитата Сообщение от palva Посмотреть сообщение
напишите обработку двоичного файла
Вот с этого момента вас не затруднит немного поподробнее?

Добавлено через 5 минут
В данный момент там не только этой колонки нет (на пустой таблице ALTER TABLE применил). В этой таблице до редактирования порядка 30-40 колонок и весит все это чудо 119 МБ, а мне всего то нужно 5 колонок и 2,2 МБ. Каждый раз (каждую неделю) редактировать таблицу через DBFNavigator можно, но как вы прикажете этому обучить моих "обезьян" на работе?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.01.2014, 22:01 23
Цитата Сообщение от palva Посмотреть сообщение
в таблице нет колонки с именем dtr
Таки есть :-)
Миниатюры
Как удалить столбцы из таблицы (DBF)  
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
02.01.2014, 22:02 24
Вот это как раз и затруднит. У меня нет не только микрософт офиса но и vb.net. Если на C# только показать...
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
02.01.2014, 22:02  [ТС] 25
Цитата Сообщение от palva Посмотреть сообщение
то можно открыть ее в Excel
Таблицу ручками можно в чем угодно редактировать, хоть в Экселе, хоть в Ацесе...
Программа в первую очередь ориентируется на рядового сотрудника, который до сих пор считает что Microsoft Office это ОС
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.01.2014, 22:07 26
Цитата Сообщение от Razvedka2020 Посмотреть сообщение
обучить моих "обезьян" на работе
IMHO, нескольких строк скрипта на старом (DOS) Foxpro будет достаточно.

Возможно, и более новый сгодится, просто в этом веке я с ним уже не сталкивался.
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
02.01.2014, 22:07 27
gazlan, я, наверно, второй архив скачал. У меня уже этого поля не было, и байт 1A в конце отсутствовал (но это уже не важно).
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
02.01.2014, 22:11  [ТС] 28
Цитата Сообщение от gazlan Посмотреть сообщение
на старом (DOS) Foxpro будет достаточно
Мне стыдно конечно это признать, но в этом вопросе уже я "обезьяна"...
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.01.2014, 22:37 29
Цитата Сообщение от palva Посмотреть сообщение
уже этого поля не было, и байт 1A в конце отсутствовал
Да, действительно. Ни поля, ни соответствия стандарту. Впрочем, к отсутствию 1Ah, большинство программ относится либерально.
Миниатюры
Как удалить столбцы из таблицы (DBF)  
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
02.01.2014, 22:38 30
На C# как-то так будет. На VB те же классы .NET нужно использовать.
C#
1
2
3
4
5
6
using System.IO;
...
            byte[] buf;
            BinaryReader br = new BinaryReader(File.Open("pdl1.dbf", FileMode.Open));
            //BinaryWriter bw = new BinaryWriter(File.Open("pdl2.dbf", FileMode.Create));
            buf=br.ReadBytes(8);
Если вы возьметесь писать, то я думаю, форум вам поможет.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.01.2014, 22:43 31
Цитата Сообщение от Razvedka2020 Посмотреть сообщение
но в этом вопросе
Гм. Если вы дадите примеры (структуры) ваших таблиц - пустых, данные не нужны - я попробую написать простенький фильтр, который будет копировать из одного файла в другой только нужные вам поля. Но не на Fox -и под рукой нет, и вспоминать неохота :-)
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
06.01.2014, 18:09  [ТС] 32
Всем спасибо за непосильную помощь и дельные советы, тему можно закрывать.
0
06.01.2014, 18:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2014, 18:09
Помогаю со студенческими работами здесь

Как узнать структуру dbf-таблицы?
подключаюсь к dbf-таблице с помощью АДО и ODBC драйвера, могу ли я узнать структуру нужной мне...

Как удалить запись из dbf файла в ADO?
Использую АДО... таблица Dbase III... Записи добавляются без проблем, но удалять не хочет никак......

DBF - поменять местами столбцы
Как можно поменять столбцы местами TTable, DBF

Как удалить столбцы
Нужна программа , которая удаляет столбцы из двумерного массива , запрашивая номер столбца по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru