prototype LONG NETAPI32.NetApiBufferFree(BYVAL LONG);
prototype LONG Kernel32.lstrlenW(LONG);
prototype LONG Kernel32.RtlMoveMemory(POINTER,NUMBER,BYVAL NUMBER);
prototype Get_All_SQLServer();
#define SV_TYPE_SQLSERVER 4
typedef SV
begin
LONG plattform;
LONG name;
end;
typedef DOMAINSTR
begin
STRING Domain[255];
end;
function Get_All_SQLServer()
STRING TestStr2[255];
NUMBER i,nResult, EintraegeGelesen, EintraegeInsg, Handle, Level,Buffer,Laenge,l;
LIST ServerListe;
SV test;
SV POINTER ptest;
DOMAINSTR DomainName;
DOMAINSTR POINTER pDomainName;
begin
ServerListe=ListCreate(STRINGLIST);
ptest=&test;
pDomainName=&DomainName;
nResult=NetServerEnum(NULL,100,Buffer,-1, EintraegeGelesen, EintraegeInsg,SV_TYPE_SQLSERVER,NULL,Handle);
while(i<(EintraegeGelesen-1))
RtlMoveMemory(ptest,Buffer,8);
l=ptest->name;
Laenge=lstrlenW(l)*2;
if Laenge then
RtlMoveMemory(pDomainName,l,Laenge);
endif;
TestStr2=pDomainName->Domain;
ListAddString(ServerListe,TestStr2,AFTER);
Buffer = Buffer + 8;
i=i+1;
endwhile;
NetApiBufferFree(Buffer);
SdShowInfoList ("SQL Server", "Alle verfügbaren SQL Server:", ServerListe);
ListDestroy(ServerListe);
end;
Leider bekomme ich nur das erste Zeichen des SQL-Servers. Wie bekomme ich den Rest? Bitte helft mir!