xodbc.pas

来自「我自己用的Delphi函数单元 具体说明见打包文件的HELP目录下面」· PAS 代码 · 共 50 行

PAS
50
字号
unit xODBC;

interface
uses
    windows;
const
    ODBC_ADD_DSN=1;
    ODBC_CONFIG_DSN=2;
    ODBC_REMOVE_DSN=3;
    ODBC_ADD_SYS_DSN=4;
    ODBC_CONFIG_SYS_DSN=5;
    ODBC_REMOVE_SYS_DSN=6;
    ODBC_REMOVE_DEFAULT_DSN=7;

function SetODBC(opCode:WORD;const sDriver,sAttributes:string):Boolean;
function SQLConfigDataSource(hwndParent:HWND;fRequest:WORD; const lpszDriver:PCHAR;const lpszAttributes:PUCHAR):BOOL;stdcall;

implementation
function SQLConfigDataSource; external 'odbccp32.dll' name 'SQLConfigDataSource';

function SetODBC(opCode:WORD;const sDriver,sAttributes:string):Boolean;
var
    p,pAttributes:PUCHAR;
    pDriver:PCHAR;
    i,n:integer;
begin
    pDriver:=PCHAR(sDriver);

    GetMem(p,65535);
    pAttributes:=p;

    n:=Length(sAttributes);
    for i:=1 to n do
    begin
        if sAttributes[i]=';' then p^:=0
        else p^:=byte(sAttributes[i]);
        inc(p);
    end;
    p^:=0;
    inc(p);
    p^:=0;

    Result:=SQLConfigDataSource(0,opCode,pDriver,pAttributes);

    p:=pAttributes;    
    FreeMem(p);
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?