testst.pp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. program testst;
  2. {$mode objfpc}
  3. uses fpodbc,Classes;
  4. var
  5. Conn : TODBCConnection;
  6. St : TODBCSQLStatement;
  7. FieldNames : TStringList;
  8. I : Integer;
  9. PT : TODBCParamType;
  10. procedure DumpFielddef(F : TODBCField);
  11. begin
  12. Writeln('Field ',F.Position,' : ',F.Name);
  13. Writeln('Type : ',F.DataType);
  14. Writeln('Size : ',F.Size);
  15. Writeln('Decimal digits : ',F.DecimalDigits);
  16. Writeln('Nullable : ',F.Nullable);
  17. end;
  18. begin
  19. Conn:=TODBCConnection.Create(Nil);
  20. Try
  21. Conn.DSN:='FPC';
  22. Conn.Active:=True;
  23. ST:=TODBCSQLStatement.Create(Conn);
  24. Try
  25. ST.SQL.Text:='Select * from fpdev';
  26. ST.Prepare;
  27. Try
  28. FieldNames:=TStringList.Create;
  29. Try
  30. st.GetFieldList(FieldNames);
  31. Writeln('Found ',FieldNames.Count,' Fields in result set :');
  32. For I:=0 to FieldNames.Count-1 do
  33. Writeln(i+1,': ',FieldNames[i]);
  34. Writeln('End of list');
  35. st.bindfields(nil);
  36. with st.fields do
  37. for I:=0 to COunt-1 do
  38. DumpFielddef(st.fields.items[i] as TODBCField);
  39. finally
  40. FieldNames.Free;
  41. Writeln('Freed list');
  42. end;
  43. Finally
  44. St.Unprepare;
  45. Writeln('Unprepared');
  46. end;
  47. Finally
  48. ST.Free;
  49. Writeln('Freed statement');
  50. end;
  51. Conn.Active:=False;
  52. Writeln('Disactivated connection');
  53. Finally
  54. Conn.free;
  55. Writeln('Freed Connection');
  56. end;
  57. end.