Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/58: Рейтинг темы: голосов - 58, средняя оценка - 4.88
Заблокирован

Принцип работы SQL запросов в Visual Basic 6.0 (За основу взята Data)

02.06.2012, 19:32. Показов 11360. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень часто встречаю на форуме людей, которые делают поиск в своих базах данных, основываясь на метод запроса к Ado или Dao, но достойного поиска так и не встретил, были, конечно, примеры достойные внимания, но все, же с ошибками, вводишь значение и знаешь, оно есть, но поиск говорит, что нет... Решил показать пример как можно эксплуатировать SQL запрос к базе данных как поиск. Собственно пример в прикрепленных файлах. Далее будут примеры еще интереснее.

Вопросы по коду в тему.
Вложения
Тип файла: rar SQL.rar (496.7 Кб, 509 просмотров)
3
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2012, 19:32
Ответы с готовыми решениями:

Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков
Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков. Довольно часто я на форуме встречаю людей которые мало...

Запросы sql в visual basic
не могу понять!!! Почему то запросы с условиями работают только если тип поля в условии является числовым, если его тип текстовый то...

Visual basic & SQL
Доброго времени суток. Такой вопрос меня мучает уже более суток. Имеется одна большая бд (я выбрал на sql) Там столбцы (их много) ...

7
Заблокирован
02.06.2012, 20:00  [ТС]
Еще пример, на основе все того же SQL посчитаем поля с таблицы "Цена". К примеру есть ряд таблиц:

[Значение] [Значение] [Значение] [Цена]

Как нам посчитать сколько же всего получится в итоге по всем полям [Цена]? Есть такой замечательный SQL оператор "sum". Смотрим пример.
Вложения
Тип файла: rar SQL (Складываем поля).rar (13.3 Кб, 260 просмотров)
1
Заблокирован
03.06.2012, 10:59  [ТС]
На примере все той же базы данных смотрим вложенный файл. На поле формы добавим кнопку со стандартным именем и в нее впишем следующий код:

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "WHERE (((Customers.CompanyName) In (SELECT [CompanyName] FROM [Customers] As Tmp GROUP BY [CompanyName] HAVING Count(*)>1 )))"
DataBase.Refresh
Данный SQL запрос поможет нам найти из всей базы данных повторяющиеся значения в таблице базы данных "Customers" по всем полям CompanyName. Запрос выведет их на экран, сгруппировав.
Вложения
Тип файла: rar SQL (Одинаковые записи).rar (13.5 Кб, 174 просмотров)
1
Заблокирован
03.06.2012, 11:28  [ТС]
Следующая строка SQL покажет нам все значения из поля "Цена" которые больше "5000":

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "where Customers.Цена >= 5000"
DataBase.Refresh
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
03.06.2012, 12:51
Все очень просто:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     '::: Создадим ADO-соединение
 
     Set Conn = CreateObject("ADODB.Connection")
 
     '::: Создадим recordset
 
     Set RS = CreateObject("ADODB.Recordset")
 
     '::: Зададим драйвер (здесь Access)
 
     DSNName = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
     DSNName = DSNName & HomeDir & "\test_base.mdb"
 
     '::: Открываем соединение
 
     Conn.Open DSNName
Теперь можно вводить SQL-запросы и анализировать ответы

Visual Basic
1
2
3
4
5
6
7
     SQL="SELECT count(*) from tbl1"
 
     RS.Open SQL, Conn, 3, 3
 
     msgbox "В таблице записей: " & Cstr(Rs(0))
 
     Rs.Close
Важно, что объект RS - это виртуальный массив, в котором колонки нумеруются с нуля,
а количество строк = к-ву строк, удовлетворяющих выполненному SELECT.
Так, если введен Select

SQL
1
SELECT a,b,c FROM T WHERE a=... AND b >= ... ORDER BY a,b,c
То Rs(0) - колонка a; Rs(1) - колонка b, Rs(2) - колонка c.
А число строк Rs = к-ву строк, который вернул SELECT.

Обработать RS можно так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
     RS.Open SQL, Conn, 3, 3
 
     Do While not RS.EOF
 
        txt=Cstr(Rs(0)) & " " & cstr(Rs(1)) & " " & Cstr(Rs(2))
        MsgBox Txt
 
        Rs.MoveNext
 
     Loop  
 
     Rs.Close
Ни сортировать, ни фильтровать, ни группировать результаты не нужно. Все это сделает SQL (если правильно сформулировать запрос).
2
Заблокирован
03.06.2012, 14:13  [ТС]
(За основу взята Data) обрати внимание !
0
Заблокирован
22.10.2012, 19:11  [ТС]
Catstail, АП темы ! Слушай не пойму что в твоем коде:

Цитата Сообщение от Catstail Посмотреть сообщение
'::: Создадим ADO-соединение Set Conn = CreateObject("ADODB.Connection") '::: Создадим recordset Set RS = CreateObject("ADODB.Recordset") '::: Зададим драйвер (здесь Access) DSNName = "DRIVER=Microsoft Access Driver (*.mdb)BQ=" DSNName = DSNName & HomeDir & "\test_base.mdb" '::: Открываем соединение Conn.Open DSNName
Будет работать с Grid? DataSource = чему ?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
24.10.2012, 12:41
Если мы будем работать с визуальным компонентом, то результирующий RecordSet моего кода надо "запихнуть" в DataSource (если получится). У визуальных компонентов свои интерфейсы, а ADO - интерфейс общий (код будет работать и в VBScript, где нет виз. компнентов, и в VBA, где подключть их бывает непросто).

Добавлено через 38 секунд
Цитата Сообщение от inv.DS Посмотреть сообщение
Слушай не пойму что в твоем коде:
- что именно непонятно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2012, 12:41
Помогаю со студенческими работами здесь

Sql server и VS visual basic. Авторизация
Здравствуйте :) Помогите пожалуйста. Нужно создать авторизацию. Есть форма, на форме 2 textbox-а и 2 label-а соответственно(Емайл и...

Visual Basic 6.0. + SQL Server 2012
Добрый день, уважаемые. Очень нужна ваша помощь. Подскажите, пожалуйста. Есть база данных SQL Server 2012. В ней таблица MARA и...

Sql server и VS visual basic. Авторизация
Есть 3 формы. 1 форма - форма авторизации. (на форме расположены Text.box1 и Text.box2 соответственно логин и пароль и кнопка...

Автоматизация работы кинотеатра в Excel на Visual Basic
Дали задание, автоматизировать работу кинотеатра, самую малость сделала, но так как с Excel и VB почти не знакома не имею представления с...

Пример работы Autocad & Visual Basic
Создаю программу : при помощи команды subtract из одного solid должна выбить другой, но програма не действует...может кто работает с VB в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru