| |
|
|
Christof Neuß | Salut,
la fois wieder une Frage trop SQL avec einer Access-banque de données im Hintergrund. je voudrais simple qui Felder UND DEREN ART un certain Tabelle abfragen.
dans VBA allez cela wohl so:
comment peux je cela car traduire? ou bien kennt quelqu'un une autre Possibilité? |
|
|
| |
|
|
|
| je zumindest habe de Access-Datenbanken et VBA je n'en sais rien. ^ ^ |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | je bin's la fois wieder
window 600,600
def %SQL_HANDLE_STMT 3
def %SQL_NTS -3
var File$="D:\Archive\Einstellungen\Alcatel 701\nouvelle.mdb"
var nom$="Inbox"
var Init$="Driver={Microsoft Access Driver (*.mdb)};Dbq="+File$
var Command$="SELECT TOP 1 * FROM "+nom$
db("SQLInit",Init$)
declare Handle&
external("odbc32.dll","SQLAllocHandle",%SQL_HANDLE_STMT,&SQLDBC,addr(Handle&))
external("odbc32.dll","SQLExecDirect",Handle&,Command$,%SQL_NTS)
declare Count&
external("odbc32.dll","SQLNumResultCols",Handle&,addr(Count&))'--Anzahl Felder
declare Text#:dim Text#,255
declare a&,b&,c&,d&,e&
whileloop 1,Count&
cls
external("odbc32.dll","SQLDescribeCol",Handle&,&loop,Text#,255,addr(a&),addr(b&),addr(c&),addr(d&),addr(e&))
external("oleaut32.dll","VarI4FromI2",b&,addr(b&))'--Umwandlung de SHORT pour LONG
imprimer "Index ",&loop
imprimer "Name ",string$(Text#,0)
imprimer "NameLength ",a&
imprimer "DataType ",b&
imprimer "ColumnSize ",c&
imprimer "DecimalDigits ",d&
imprimer "Nullable ",e&
imprimer
imprimer "<ENTER>"
waitkey
endwhile
imprimer "Fertig"
external("odbc32.dll","SQLFreeHandle",%SQL_HANDLE_STMT,Handle&)
db("SQLDone")
dispose Text#
waitkey
end
'
'Hinweis:
'DataType ist vom Typ SQLSMALLINT
'chez negativen Werten wird tout autor beim Lecture cela Vorzeichen-Bit pas korrekt mise en œuvre!
'Umwandlung de SHORT pour LONG ist nötig!
SQL_UNKNOWN_TYPE =0;
SQL_CHAR =1;
SQL_NUMERIC =2;
SQL_DECIMAL =3;
SQL_INTEGER =4;
SQL_SMALLINT =5;
SQL_FLOAT =6;
SQL_REAL =7;
SQL_DOUBLE =8;
SQL_DATETIME =9;
SQL_TIME =10;
SQL_TIMESTAMP =11;
SQL_VARCHAR =12;
SQL_LONGVARCHAR =(-1);
SQL_BINARY =(-2);
SQL_VARBINARY =(-3);
SQL_LONGVARBINARY =(-4);
SQL_BIGINT =(-5);
SQL_TINYINT =(-6);
SQL_BIT =(-7);
window 600,600
$H Windows.ph
$H ocx3a.ph
$I ocx3a.inc
ocxInit()
var File$="D:\Archive\Einstellungen\Alcatel 701\nouvelle.mdb"
var nom$="Inbox"
var Connect$="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+File$
var Command$="Select TOP 1 * à partir de "+nom$
var Rec&=ocxCreate("ADODB.Recordset")
ocxMethod(Rec&,"Open",Command$,Connect$)
var Fields&=ocxget(Rec&,"Fields")'---"Fields" sans paramètre: Fields-Collection
var Count%=ocxGet(Fields&,"Count")'--Anzahl Felder dans Collection
ocxRelease(Fields&)
declare Feld&
whileloop 0,Count%-1
cls
Feld&=ocxGet(Rec&,"Fields",&loop)'--"Fields" avec paramètre: einzelne Felder pour 0-index
imprimer "Index : ",&loop
imprimer "Name : ",ocxGet(Feld&,"Name")
imprimer "Type : ",ocxGet(Feld&,"Type")
imprimer "Value : ",left$(ocxGet(Feld&,"Value"),40)'--le contenu sur 40 marque gekürzt
imprimer "DefinedSize: ",ocxGet(Feld&,"DefinedSize")'------Deklarierte Taille
imprimer "ActualSize : ",ocxGet(Feld&,"ActualSize")'-------Verwendete Taille
imprimer
imprimer "<ENTER>"
ocxRelease(Feld&)
waitkey
endwhile
ocxMethod(Rec&,"Close")
ocxRelease(Rec&)
ocxDeInit()
imprimer "Fertig"
waitkey
end
'Werte pour DataTypen chez MSDN sous
'https://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=VS.85).aspx
Offtopic @ iF: Leerzeilen im Voir le texte source wären hilfreich
HTH Pascal |
|
|
| |
|
|
|
Christof Neuß | et wieder suis je par toi une Schritt plus.
DANKE!!!! |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Nico Madysa | [OFFTOPIC] Zeilen, pas marque, iF. [/OFFTOPIC] |
|
|
| |
|
|
|
| eh! oui, naturellement -
Source volonté oui gezeilt ^ ^ -
bau je wieder un Flag pour un.
il y a (mais) aussi den Quelltextmerker si on 1:1-Source braucht: [...] |
|
|
| |
|
|