Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FoxPro в Visual Basic 
:(
    Опции темы
Akina
Дата 11.11.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



http://msdn.microsoft.com/en-us/library/aa968814(VS.85).aspx
Там где-то рядом оно есть даже на русском - но искать откровенно лень. Поищи сам по какой-нить строке кода из примера, скажем.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
  Дата 12.11.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Окрой VB6, в меню Projects -> Components выбери MicroSoft ADO Data Control VB6 нарисуй на форме.

Потом опять же в меню Projects -> Components выбери DataGrid (если нужно править данные ручками в табличном объекте) или MSHFlexGrid (если нужно просто отображать результат запроса). Налепи их на форму.

В свойствах объекта MSHFlexGrid1 выбери DataSource=Adodc1 - соединили - теперь при выборке данные будут отображаться в Гриде.

Щелкни левой кнопой мыши по объекту Adodc - выбери св-во ConnectionString - щелкни по кнопочке с 3-мя точками - откроется Property Pages - выбери нижний пункт "Use Connection String" - щелкни по кнопке Build - затем выбери MicroSoft OLE DB Provider for ODBC Driver - нажми Далее - затем выбери "Использовать имя источника данных" - выбери свой формат (FoxPro) - затем введи начальный каталог - где лежит твоя БД - нажми кнопку Проверить подключение

В результате свойство ConnectionString объекта Adodc1 должно быть: "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Visual FoxPro Database"

Затем выбери тип команд: свойство CommandType - если SQL-запрос - то AdCmdText - если табличный - то Table. Выбери adCmdText.

Затем выбери свойство RecordSource - туда впиши свой SQL-запрос.

Затем выполни код:

Код

Adodc1.Refresh


Еще есть свойства у объекта Adodc1 - Mode и LockType - выбери какой тип тебе нужен.

Все вышеописанное можно проделать программным кодом, как делаю я:

Код

Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=R:\BASA"

    Dim SQLStatement As String

    SQLStatement = "Select ...... from ..... where....."

        Adodc1.RecordSource = SQLStatement

        Adodc1.Refresh



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
  Дата 12.11.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(I_Am_Rock @  10.11.2009,  21:52 Найти цитируемый пост)
Но везде в примерах - Access. И видимо для фокспро нужно по-другому.
SQL-запросы абсолютно одинаковы что для Access, что для DBase - тебе нужно только правильно выбрать значение ConnectionString объекта Adodc.


Это сообщение отредактировал(а) Voldemar2004 - 12.11.2009, 14:33


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 12.11.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Voldemar2004 @  12.11.2009,  15:24 Найти цитируемый пост)
нужно только правильно выбрать тип ConnectionString объекта Adodc

http://www.connectionstrings.com/


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
I_Am_Rock
Дата 13.11.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: 12
Всего: 15



Voldemar2004

Большое спасибо за очень полезную инфу.

Только два момента
1. когда я пытался создать КоннекшнСтринг с MicroSoft OLE DB Provider for ODBC Driver - он писал ошибку. Поэтому я выбрал MicroSoft OLE DB Provider for Visual FoxPro. Все остальное я сделал по инструкции - и заработало! Таблица норм отображается. smile
2. но она не редактируется! Пишет ошибку "Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний." Почему так? Я ставил Mode в 3 - т.е. запись/чтение

MSHFlexGrid я не нашел (юзал DataGrid) - как он точно называется?

 smile 


Akina, тебе также - большое спасибо! smile

--------------
Еще 1 момент!

Пробую

Код

Adodc1.Recordset.AddNew "nomer", "3"


и он действительно добавляет новую строчку в таблице, но одновременно ругается ошибкой "Недостаточно сведений из основной таблицы для обновления" :(

Это сообщение отредактировал(а) I_Am_Rock - 13.11.2009, 22:58
PM MAIL WWW   Вверх
Akina
Дата 13.11.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



MSFlexGrid - Microsoft FlexGrid Control 
MSHFlexGrid - Microsoft Hierarchical FlexGrid Control 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
I_Am_Rock
Дата 14.11.2009, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: 12
Всего: 15



А почему Voldemar2004 написал

Цитата

если нужно просто отображать результат запроса


ведь там таблица такого же типа?

И вопрос с неизменяемостью данных остается актуальным. :(

Это сообщение отредактировал(а) I_Am_Rock - 14.11.2009, 14:07
PM MAIL WWW   Вверх
Данкинг
Дата 14.11.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



 smile 
Цитата(Voldemar2004 @  12.11.2009,  14:24 Найти цитируемый пост)
SQL-запросы абсолютно одинаковы что для Access, что для DBase

Да ладно уж. Конечно, "select * from TABLE" сработает в любых СУБД, но если составлять более сложные запросы, то по поводу абсолютной одинаковости я бы говорить поостерёгся.  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Voldemar2004
  Дата 14.11.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Данкинг @  14.11.2009,  16:43 Найти цитируемый пост)
Да ладно уж. Конечно, "select * from TABLE" сработает в любых СУБД
Я имел в виду именно для в VB6 smile - Мы выбриаем драйвер подключения к БД, а синтаксис SQL такой же



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
I_Am_Rock
Дата 14.11.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: 12
Всего: 15



А по моим вопросам?  smile 
PM MAIL WWW   Вверх
Akina
Дата 14.11.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Voldemar2004 @  14.11.2009,  17:28 Найти цитируемый пост)
Я имел в виду именно для в VB6  - Мы выбриаем драйвер подключения к БД, а синтаксис SQL такой же

Вы неправы, Данкинг совершенно верно говорит. Пока вы остаётесь в рамках стандарта, всё путём. Как только делаете шаг в сторону (а это сплошь и рядом) - тут же грабли. Не зря вся справка по, например, MS Jet SQL испещрена ремарками, что "это работает только в Jet". И со всеми другими так же...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.