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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамические запросы, в VB 
:(
    Опции темы
Vidocq
Дата 17.1.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



как в ВБ6 пользоваться динамическими запросами типа
Код

SqlText = "SELECT * FROM TableName WHERE id=" & ID;

Использую DAO.

какие библиотеки для этого подключать?
PM MAIL ICQ   Вверх
Naghual
Дата 17.1.2005, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Цитата
Использую DAO.
какие библиотеки для этого подключать?

Так уже никаких и не надо. Ты же уже используеш ДАО!
Или я не понял вопрос?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Vidocq
Дата 17.1.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Naghual
Нет, дело в том, что так как делаю я - не работает...
Аллах с ним (с ДАО:))!
я хочу понять, как ПРАВИЛЬНО писать такого рода запросы...
PM MAIL ICQ   Вверх
Exception
Дата 17.1.2005, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Это?
Код

Dim db As DAO.Database
Set db = OpenDatabase("c:\test.mdb")
Dim rs As DAO.Recordset
Dim SqlText As String
SqlText = "SELECT * FROM TableName WHERE id=" & ID;
Set rs = db.OpenRecordset(SqlText)

PM   Вверх
Gannibal
Дата 17.1.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 18
Всего: 17





--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Vidocq
Дата 17.1.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Run-time error
Код

Dim db As DAO.Database
Set db = OpenDatabase("c:\test.mdb")
Dim rs As DAO.Recordset
Dim SqlText As String
SqlText = "SELECT * FROM TableName WHERE id=" & ID;
Set rs = db.OpenRecordset(SqlText)


вот так как раз и не работает, по крайней мере в цикле, где ID постоянно
изменяется



--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Akina
Дата 17.1.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Vidocq @ 17.1.2005, 18:41)
вот так как раз и не работает, по крайней мере в цикле, где ID постоянно изменяется

Чудеса, аднака... код - в студию. С указанием места и номера ошибки или неправильной выборки.


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

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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Ага. А что такое "TableName"? Это так таблица называется?
smile


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Vidocq
Дата 17.1.2005, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

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



2 Naghual

ну да
ЗЫ. Ты чего, прикалуешься? ;)


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Naghual
Дата 17.1.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Да так. Обычно TableName это переменная, содержащая имя таблицы. Как переводится.
Возможно нужно написать так:
Код

SqlText = "SELECT * FROM " & TableName & " WHERE ID = " & ID


И потом. Что такое "ID;"? К чему там ";"?

Это сообщение отредактировал(а) Naghual - 17.1.2005, 18:17


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Gannibal
Дата 17.1.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 18
Всего: 17



а если вот так?

Использование SQL-запросов (Structured Query Language) для работы с БД в ваших программах.
Для демострации возможностей SQL мы создадим небольшую программу. Для этого: 1. Загрузите Visual Basic
2. Создайте Standart EXE
3. Щелкните на Project, Components и у вас появится список на экране. Выберите в этом списке 'Microsoft FlexGrid Control 6.0' и щелкните OK. Контрол под названием FlexGrid позволит нам показать ответы на вопросы, касающиеся баз данных.
3. Далее, добавьте следующие контролы в форму. Добавьте Text Box, Command Button, Data control и собственно, MSFlexGrid.
4. В окне Properties щелкните на свойстве 'DataSource'. Из появившегося списка выберите 'Data1'.
5. Измените свойство DatabaseName так, чтобы оно указывало на базу данных Nwind.mdb. Обычно она расположена в "C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb"
6. Теперь вставьте следующий код:


Код

On Error GoTo ErrHandle
Data1.RecordSource = Text1.TextData1.Refresh
Exit Sub
ErrHandle:MsgBox "У нас проблемы!"


Отлично! Теперь я расскажу, как это работает

Во-первых, мы добавили контрол FlexGrid. Он является точо таким же контролом, как и CommandButton или CheckBox.

Этот контрол позволяет легко просматривать все записи, находящиеся в нашей базе.

Теперь мы зададим "вопрос" нашей базе на SQL и таким образом "скажем" ей, что результаты должны появлятся в FlexGrid.

Нажмите F5, чтобы запустить программу. Наберите в текстовом поле 'Customers' и нажмите кнопку. Вы увидите кучу колонок с разнообразной информацией.

Но теперь давайте представим, что нам нужно показывать не всю таблицу, а только контактные имена. Только вот как это сделать?

Для этого используем SQL. В текстовом поле напишите:

Select ContactName from Customers

что означает примерно следующее: "Покажи мне все, что находится в столбце ContactName из таблицы Customers. Или вот еще один пример:

Select ContactName, ContactTitle from Customers

Только не говорите вашим друзьям, что SQL -- это очень просто. Лучше купите книжку...;)

Кстати, SQL-запросы можно создавать из Access, где они именуются Query.

В этой статье я, как и обещал, познакомил вас с SQL. В следующей статье мы изучим SQL несколько больше.






--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Naghual
Дата 17.1.2005, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



2 M.E.G.U.S: Ну и что ты этим хотел сказать?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Gannibal
Дата 17.1.2005, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 18
Всего: 17



2 Naghul он ведь хотел знать как в ВБ пользоваться запорасами вот я ему и ответил в принципе понятно всё .. а ты что подумал?


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Flotskiy
Дата 18.1.2005, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Доброе утро всем!
Код

       Option Explicit
Dim adoConnection As ADODB.Connection
Dim adoRecordset As ADODB.Recordset
-----------------------------------------------------
Private Sub Command1_Click()

Set adoConnection = New ADODB.Connection
Set adoRecordset = New ADODB.Recordset

connectString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                & "Data Source=" & gDataBaseName' -путь, указанный в Global.bas

  Data1.RecordSource = "SELECT Family " & _
                         "FROM Glavnaja WHERE ID=" & ID
                         "ORDER BY  Family"
   Data1.Refresh
' Glavnaja-название таблицы
' Family - поле в таблице
' ID - счетчик этой таблицы
End Sub

На форме Data1, DBGrid1( или MSFlexGrid), кнопка Command1
Так у меня работают уйма приложений , может поможет.
Всего доброго.

Это сообщение отредактировал(а) Flotskiy - 18.1.2005, 06:40
--------------------
FlotskiySk k
PM MAIL   Вверх
Naghual
Дата 18.1.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Ну а где виновник торжества Vidocq?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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