devoid.com.ua - Портал программистов. Все для программиста.
         Новости  Статьи  FAQ  Файлы  Ответы  Блог  Форум     
Статьи
C# (C sharp)
 Начинающим
 Win Forms
 Среда .NET
 C# - научиться или умереть
C / Visual C++
 Основы языка
C++Builder
 Общие вопросы
 Базы данных
 Сеть
Pascal/Delphi
 Основы
 Базы Данных
 Сеть
PHP
 Основы языка
ASP.NET
 Введение
 ADO.NET
Базы данных
 MS SQL Server
 MySQL
 Firebird/InterBase
Описания функций
 WinAPI
 C++/C (Си)
Студентам
 Лабораторные работы по C++


услуги свадебного фотографа
Подключение приложения C++ Builder к базе данных Excel через ADO


Подключение приложения C++ Builder к базе данных Excel через ADO.

  Пример подключения приложения C++ Builder к базе данных Excel через ADO используя OLE интерфейсы:
#include "utilcls.h" 
#include "sysvari.h"
#include "ComObj.hpp"

AnsiString sql = "SELECT [справочник отделений$].* From [справочник отделений$] ";
Variant cnn = CreateOleObject("ADODB.Connection");
Variant rst = CreateOleObject("ADODB.Recordset");
cnn.OlePropertySet("Provider","MSDASQL.1");
cnn.OlePropertySet("Open","Driver={Microsoft Excel Driver (*.xls)};
DBQ=D:\\ADO\\справочники.xls; ReadOnly=False;");
rst.OleProcedure("Open" ,sql.c_str(), cnn, 1, 3, 1);
Variant Fields = rst.OlePropertyGet("Fields","Otd");
ListBox1->Clear();

while(rst.OlePropertyGet("EOF")== 0)
{
ListBox1->Items->Add(Fields.OlePropertyGet("OriginalValue"));
}
rst.OleProcedure("MoveNext");
if(rst.OlePropertyGet("EOF")== 1) break;
}
  Формирование SQL запросов в книге Excell:
Строка AnsiString sql = "SELECT [справочник отделений$].* From [справочник отделений$] "; формирует запрос к данным, находящимся на листе «справочник отделений».
Вы меня спросите: «Как же они формируются ?»
На что я вам отвечу: «Очень просто!»
  Чтобы определить в запросе рабочий лист как таблицу базы данных, используйте имя рабочего листа, сопровождаемое знаком «$», окруженных квадратными скобками или символом кавычки` (под тильдой) . Например:
strSQL = "SELECT * FROM [справочник отделений $]"
или
strSQL = "SELECT * FROM ` справочник отделений $`"
Можно также определить именованный диапазон ячеек базой данных, для этого следует использовать имя диапазона в запросе. Например:
strQuery = "SELECT * FROM MyRange" 
Чтобы определить неименованный диапазон ячеек базой данных, добавьте после знака $ стандартную систему обозначения диапазона Excel.
Например:
strQuery = "SELECT * FROM [справочник отделений $A1:B16]" 
  Все ячейки с данными, не входящие в диапазон, а также пустые строки в самом диапазоне не будут входить в базу данных. Предостережение определения рабочих листов: Поставщик данных (провайдер) по-умолчанию считает, что таблица данных начинается с верхней, крайней левой непустой ячейки, на выбранном рабочем листе. Другими словами, ваша таблица данных может начаться с ячеек С3 или D5, однако нельзя, например, напечатать worksheet заголовок выше и левее от данных в ячейке A1, то бишь данные не должны начинаться с ячейки А1, т.к. верхняя ячейка в заданном диапазоне содержит имя таблицы. См. Рис. 1.


Рис.1.



Рис.2.

  На рисунке 2.показано, что данные не должны начинаться с ячейки А1. В приведённом примере Провайдер определит БД как таблицу из 2-х полей с названиями: «01» и «Биохимическая лаборатория». Вобщем, если диапазон не определён, то имена полей таблиц хранит первая непустая верхняя строка, ну а если определён, то самая верхняя.

  Версия для печати

Информация о статье: "Подключение приложения C++ Builder к базе данных Excel через ADO"
  Автор: Koss
  Сайт:http://devoid.com.ua
  Добавлена:15 сентября 2007
  Просмотров:3989



Не нашли ответ на свой вопрос? Задайте вопрос своим коллегам и они Вам ответят!

Задать вопрос

Популярные
   - Создание таблицы в Word с помощью C++Builder


Блог
Купил ноутбук ASUS F3Sg-T575SCCFAW
Начал использовать Zend Framework. Доволен.
Купил цифровой фотоаппарат - Canon PowerShot A580
Получил начальный аттестат Web Money
C# - запуск только одной копии программы

Форум
Ряд Фибоначчи
Работа с компонентами ScrollBar и TextBox
COM порт
!!!В САНКТ-ПЕТЕРБУРГ В КРУПНУЮ КОМПАНИЮ НУЖНЫ СПЕЦИАЛИСТЫ ДЛ
решение задач аналитической геометрии на языке С


100 free dating|Кабель UTP

© Макагон Сергей (DeVoid) , 2007-2008.
Наши 3D мониторы позволяют видеть трехмерное изображение на экранах компьютеров без приспособлений!