Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 23:34   #1
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию dll содержащая функции выполнения sql запросов

Здравствуйте! мне необходимо написать DLL на delphi в которой будут функции для подключения к sql серверу ну и некоторые другие, самые основные. подскажите пожалуйста как это сделать!! буду очень благодарен
jb_007 вне форума Ответить с цитированием
Старый 06.05.2009, 10:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Через ADO? Какой сервер?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 13:25   #3
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию

а как через ADO усли это длл??или как то его можно подключить к DLL? сервер mySQL.
jb_007 вне форума Ответить с цитированием
Старый 06.05.2009, 13:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как через ADO усли это длл??
Ну в DLL создавать TADOQUERY и с ним работать. но...
ты скажи чем в принципе к mySQL коннектишся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 15:13   #5
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию

а можно поподробней на счет как создать TADOQUERY в DLL? а как конектиться вообще можно!!я думал что через Mysql_connect. ну или как то так!если нет, то объясните как подключаться!
jb_007 вне форума Ответить с цитированием
Старый 06.05.2009, 16:14   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если в кратце и без проверок то так:
ДЛЛ
Код:
library Project2;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses      ADODB,  ShareMem,
  SysUtils,  unit1,
  Classes;
 var sk:integer;fs:TForm1; ado:TADOQuery;
{$R *.res}

 Procedure ConnectA(DataBase:string);
 begin
  ado:=TADOQuery.Create(nil);
  ado.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataBase+';Persist Security Info=False';
 end;

 procedure OpenA(Select:String);
 begin
    ado.Active:=false; ado.SQL.Text:=Select;  ado.Active:=true;
 end;

 procedure MoveToA(RecNoA:Integer);
 begin
  ado.First;ado.MoveBy(recnoA);
 end;

 {Получить значение из поля под номером}
 function GetField(Index:Integer):PChar;
 begin
  result:=pchar(ado.Fields[index].AsString);
 end;
 procedure CloseA;begin   ado.Active:=false; ado.Free; end;
exports ConnectA,OpenA,MoveToA,GetField,CloseA;
begin
end.
Сам проект:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ADOQuery1: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public

    { Public declarations }
  end;
   function GetField(Index:Integer):Pchar; external 'project2.dll';
   procedure MoveToA(RecNoA:Integer); external 'project2.dll';
   Procedure ConnectA(DataBase:string); external 'project2.dll';
   procedure OpenA(Select:String); external 'project2.dll';
   procedure CloseA; external 'project2.dll';
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 ConnectA('db1.mdb');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 CloseA;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenA('select * from tab');
 caption:=GetField(0);
end;

end.
Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 16:26   #7
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию

Огромное спасибо!!! попробую разобраться!
jb_007 вне форума Ответить с цитированием
Старый 06.05.2009, 16:29   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Давай, Только я не знаю какой пров для mySQL нужен. Узнаешь напиши - всем будет полезно .
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 16:50   #9
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию

Спасибо!!! общий смысл я понял!как я понял, сам текст SQL-запроса передается в функцию OpenA ? так? но какие проверки могут понадобиться я не понял!!

Последний раз редактировалось jb_007; 06.05.2009 в 16:53.
jb_007 вне форума Ответить с цитированием
Старый 06.05.2009, 22:13   #10
jb_007
 
Регистрация: 05.05.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Давай, Только я не знаю какой пров для mySQL нужен. Узнаешь напиши - всем будет полезно .
Что ты имел ввиду под словом пров?
jb_007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать несколько SQL запросов grinch SQL, базы данных 12 23.03.2009 13:15
Написание SQL-запросов tsergey Помощь студентам 9 12.02.2009 11:17
использование SQL запросов в коде VBA b00s Microsoft Office Access 3 26.04.2008 13:40
несколько запросов SQL Arteom БД в Delphi 3 09.09.2007 23:39