Wie kann ich den Datentyp eines Feldes einer Query bestimmen?
Announcement
Collapse
No announcement yet.
Datentyp eines Queryfeldes bestimmen
Collapse
X
-
Nehmen wir mal an, wir möchten wissen, welche Datenfelder sich in einer Query befinden, dann würde ich das so machen.
Form mit Query, Button und Memo-Feld.
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
str: string;
begin
//type TFieldType = (ftUnknown, ftString,
//ftSmallint, ftInteger, ftWord, ftBoolean,
//ftFloat, ftCurrency, ftBCD, ftDate, ftTime,
//ftDateTime, ftBytes, ftVarBytes, ftAutoInc,
//ftBlob, ftMemo, ftGraphic, ftFmtMemo,
//ftParadoxOle, ftDBaseOle, ftTypedBinary,
//ftCursor, ftFixedChar, ftWideString,
//ftLargeint, ftADT, ftArray, ftReference,
//ftDataSet, ftOraBlob, ftOraClob, ftVariant,
//ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
Memo1.Lines.Clear;
for i := 0 to AdoQuery1.Fields.Count - 1 do
begin
str := AdoQuery1.Fields[i].FieldName + ' - ';
case AdoQuery1.Fields[i].DataType of
ftDateTime: str := str + 'ftDateTime';
ftWideString: str := str + 'ftWideString';
ftMemo: str := str + 'ftMemo';
ftInteger: str := str + 'ftInteger';
else str := str + 'unbekannt';
end;
Memo1.Lines.Add (str);
end;
end;
Damit werden alle Felder angezeigt im Format "Feldname - Feldtyp" - natürlich müsste man über die case-Anweisung auch alle Feldtypen erfassen. - Problem damit gelöst
-
Ich versuch das Posting von oben noch einmal in einer etwas besseren Form - vielleicht kann mir ja auch mal jemand erklären, wie man hier formatierten Text ablegt.
Nehmen wir mal an, wir möchten wissen, welche Datenfelder sich in einer Query befinden, dann würde ich das so machen.
Form mit Query, Button und Memo-Feld.
procedure TForm1.Button1Click(Sender: TObject);
<br>var i: integer; str: string;
<br>begin
<br>//type TFieldType = (ftUnknown, ftString,
<br>//ftSmallint, ftInteger, ftWord, ftBoolean,
<br>//ftFloat, ftCurrency, ftBCD, ftDate, ftTime,
<br>//ftDateTime, ftBytes, ftVarBytes, ftAutoInc,
<br>//ftBlob, ftMemo, ftGraphic, ftFmtMemo,
<br>//ftParadoxOle, ftDBaseOle, ftTypedBinary,
<br>//ftCursor, ftFixedChar, ftWideString,
<br>//ftLargeint, ftADT, ftArray, ftReference,
<br>//ftDataSet, ftOraBlob, ftOraClob, ftVariant,
<br>// ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
<br>Memo1.Lines.Clear;
<br>for i := 0 to AdoQuery1.Fields.Count - 1 do
<br>begin
<br>str := AdoQuery1.Fields[i].FieldName + ' - ';
<br>case AdoQuery1.Fields[i].DataType of
<br>ftDateTime: str := str + 'ftDateTime';
<br>ftWideString: str := str + 'ftWideString';
<br>ftMemo: str := str + 'ftMemo';
<br>ftInteger: str := str + 'ftInteger';
<br>//usw.
<br>else str := str + 'unbekannt';
<br>end;
<br>Memo1.Lines.Add (str);
<br>end;
<br>end;
Damit werden alle Felder angezeigt im Format "Feldname - Feldtyp" - natürlich müsste man über die case- Anweisung auch alle Feldtypen erfassen. - Problem damit gelöst
Comment
-
Hi!
Also erstmal empfehle ich dir den Button "bearbeiten". )<br>
Um Quellcode darzustellen solltest Du einfach mal den Hinweistext über dem Eingabefeld lesen, dort steht:<br>
<b>Formatierungsregeln:</b> Mit einer Leerzeile können Sie einen neuen Abschnitt beginnen. Ansonsten können Sie die üblichen HTML-Tags verwenden (<b><b>Fett</b></b>, <i><i>Kursiv</i></i>, <br> für Zeilenumbruch oder <p> für einen neuen Abschnitt). <b><br>
Achtung bei Quellcode:</b> Quellcode-Absätze sollten mit einem <PRE> eingeleitet und mit einem </PRE> abgeschlossen werden; so bleiben Ihre Einrückungen und sowie die Zeilenumbrüche erhalten. Vorsicht bei spitzen Klammern: Diese müssen dringend als Entities geschrieben werden, um eine richtige Darstellung zu erzielen. Also für die öffnende spitze Klammer < bitte &lt; setzen und für die schließende > den Code &gt; verwenden!
<pre><pre>
BeispielCode:
Eingerückter Text
begin
noch weiter eingerückter Text;
// Kommentar
end
</pre></pre>
Comment
Comment