![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
задача у меня была следующая.
Вбскрипт, открывает dbf файл формата Visual FoxPro и там изменить свойства всех полей на not null застопорился я на том, что:
на последней строчке выдает сообщение D:\imdb.vbs(14, 5) Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Visual FoxPro Driver]File 'i_yegvas_uaf.dbf' does not exist. ребята, подскажите, как ДБФник открыть правильно так, чтобы там выполнить команду ALTER и MODIFY для изменения свойств. -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Не знаю, как открыть на VB, но много знаю про DBF:
Если ты откроешь не эксклюзивно, то никаких ALTER TABLE... у тебя не получится. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Ок, открою эксклюзивно.
Но почему он выдает ошибку на обычном селекте? -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Файл-то точно существует? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
В том-то и дело.
Файл, падлюка, никуда не девается. имя в скрипте, это копипаст имени файла. Файл лежит в корне диска Д. Изначально вообще всё как происходило, до того как я задумался скрипт наваять. Файл изначально имеет расширение *.pdm. Файл переименовывается в дбф открівается обічнім visual FoxPro и в ручную в едиторе полей таблицы выщёлкивались чекбоксы is null. Вот почему я и решил автоматизировать процесс, таких файлов становилось всё больше и больше. Народу было трудно. Ещё заметил, когда пытался открыть файл через простенькую прогу DBFNavigator он не совсем открылся. Вернее открывается, но странно. Вниз по строчкам прокручивает до конца, а при попытке прокрутить по столбцам полей вправо (а столбцов там около семидесяти или может чуток меньше) при подходе к концу, навигатор просто закрывается, тупо вырубается даже не выдав ошибку...сам по себе факт непонятный и я насторожился. Ну да ладно, это всё лирика. Если не брать в рассчет эту строчку,
То как по простому удостовериться, что файл приконнектился? Как по простому этот файл приконнектить и вывести хоть что-нибудь из него? -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
А если в строке подключения оставить только path_dbf ? Т.е.
?
Почему именно на VB надо? Если у тебя фокс установлен - так пиши прогу на нём. ![]() -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
DrBoom |
|
|||
![]() QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
Georg4, всё это чудо у Вас на VBS для ASP? Вероятно, на этот файл нет просто NTFS прав для чтения\открытия... Попробуйте копировать файл в папку web-узла (если мои догадки верны), а лучше создайте с помощью скриптов этот файл именно в папке узла [тогда точно права будут].
Это сообщение отредактировал(а) DrBoom - 21.6.2009, 12:07 |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
На VBscripte пишу потому что на нём умею, а на фоксе нет
![]() А для вбскрипта простого блокнота хватит. Попробую предложения ваши все в понедельник на работе, авось что получится, отпишусь. -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Да ладно, аргумент не катит. ![]() Фокс 8.0 поставь(если будешь ставить) - самое оно. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Согласен, не катит, но вот просто теперь из интереса, заставить пахать скрипт, ну а если что то и за фокс усядемся....что делать...
-------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Ну вот попробуй мой вариант, я в VB, как говорил, мало что понимаю, но, по логике, строка подключения должна быть такой. Или же через ADO ещё проще, но это если фокс установлен и с таблицами размеров не особо больших. Давай, а то соответствующий раздел винградовский как-то плохо юзается. ![]() Это сообщение отредактировал(а) Данкинг - 21.6.2009, 22:29 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Ну что, товарищи, после продолжительных боёв, удалив по совету тов. Данкинга имя базы из СорсДБ и оставив там только путь, смог отобразить базу данных в формате ексель:
Теперь начнутся работы над выполнением команды ALTER с целью убрать свойство всех полей is null -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
А при чём тут Excel? В нём же никаких NULL определённо нет. ![]()
На фоксе вот так:
(base - название таблицы, pole - название поля) А здесь тебе надо как-то запросом сиё сделать после подключения к каталогу с таблицами. ![]() Т.е. этот запрос куда-то воткнуть, дабы он работал. ![]() Это сообщение отредактировал(а) Данкинг - 22.6.2009, 11:01 -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Я её просто выкинул в ексель, чтобы понять открылась ли она или нет, и открылась ли полностью..
всвязи с запросом встала следующая проблема, почему то драйвер ругается при представлении ему разных видов запроса. поколупался в мсдне нашел формат нужного запроса ALTER TABLE MyTable ALTER COLUMN NullCOl NVARCHAR(20) NOT NULL пытался вставить код следующий:
Ругается на Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword. Если убрать первых 4 строчки, то ругатьс прекращает, но нифига не делает ![]() Есть вариант использовать метод EXECUTE Set recordset = connection.Execute (CommandText, RecordsAffected, Options) но что-то я с ним разобраться не могу...чего-то как её не введу, на формат ругается. Это сообщение отредактировал(а) Georg4 - 22.6.2009, 11:45 -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Тот запрос, который я написал, у меня отлично работает на самом фоксе. Тебе же нужно:
1. Открыть каталог, в котором находится файл .dbf; 2. Выполнить запрос на изменение с именем этого файла. Не знаю, как это сделать на VB, но, видимо, connection.Execute более ближе к теме. ![]()
Переложи это на VB, и будет тебе счастье. ![]() Это сообщение отредактировал(а) Данкинг - 22.6.2009, 12:12 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
ТАк в том то и дело, что смысл понятен, а вот как правильно записать эту строку на выполнение, вопрос!
-------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
более-менее вопрос со строкой решен.
Теперь вопрос встал другой. как правильно прописать изменения всех полей таблицы Ключевое слово здесь, это ВСЕХ. alter не хавает звёздочку заместо названия колонки. Поэтому я пытался в цикле это сообразить. Но почему-то не хочет. Вся проблема в том, что при таком раскладе
выдается сообщение, что база должна быть открыта эксклюзивно по идее вот эта строчка rst.Open "Select * from "+ basa_dbf, cnn она открывает базу, и alter сделать нельзя а если её нет, то как узнать количество полей, чтобы по ним всем пройти циклом? Это сообщение отредактировал(а) Georg4 - 22.6.2009, 15:31 -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Правильно, я же об этом упоминал. ![]()
Ну да: эта строчка просто выбирает из таблицы поля, т.е. этот ResultSet представлет собой выборку из таблицы, а не саму таблицу.
Открой, узнай поля, потом закрой. ![]() Это сообщение отредактировал(а) Данкинг - 22.6.2009, 15:36 -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Ты офигенный советчик.
Ты бы ещё сказал, как бы ты это сделал на ассемблере. Если бы это надо было делать на дельфи, я бы пришел к тебе первому и спросил "о великий, что ты думаешь?" Но это реализовывается на языке указанном в заголовке. И ежели не можешь помочь мне, то не пиши сюда лишнего текста, спасибо и так за то что в начале помог. Я уже пол дня листаю мсдн и поэтому злой, не раздражай, пожалуйста. -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Рад, что тебе нравлюсь. ![]() И на ассемблере тоже, наверное - суть от этого не меняется: открыть датасет, узнать инфу о полях, затем закрыть и уже выполнять запросы в эксклюзивном режиме. ![]() Смотри мой предыдущий пост: я тебе не предлагаю написать на Дельфи, я говорю об общем алгоритме. ![]() ![]()
Начало предложения противоречит его концу (и наоборот). ![]() Ну так это - прими настойку пустырника, пиона, валерианы... ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
А может тебя как злостного оффтопщика к стенке в чистом поле?
![]() Алгоритм известен, реализация вызвала проблемы, и над этим я сейчас и работаю. И ежели конструктивы в вопросе реализации мне не найти тут, то будет тяжелее, но ничего невозможного нет. -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Ежели найдёшь оффтоп в моих постах - тогда конечно. ![]() ![]() ![]() Это сообщение отредактировал(а) Данкинг - 22.6.2009, 21:21 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Georg4 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: нет Всего: 10 |
Что имеется на данный момент:
здесь пишет ошибку, что база должна быть открыта эксклюзивно, Вроде бы рекордсет закрыт, вроде бы ничего не мешает. В чем проблема? http://support.microsoft.com/kb/130659 ситуацию не прояснило Это сообщение отредактировал(а) Akina - 23.6.2009, 16:19 -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Модератор: Сообщение скрыто. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |