- adapted for new mysql_fetch_field_direct

This commit is contained in:
joost 2005-03-27 14:55:47 +00:00
parent bfa2301575
commit bf5ac5abfa

View File

@ -227,7 +227,7 @@ function TMySQLDataset.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
var var
I, FC: Integer; I, FC: Integer;
fld: TMYSQL_FIELD; fld: PMYSQL_FIELD;
CurBuf: PChar; CurBuf: PChar;
begin begin
@ -237,22 +237,22 @@ begin
for I := 0 to FC-1 do for I := 0 to FC-1 do
begin begin
fld := mysql_fetch_field_direct(FMYSQLRES, I); fld := mysql_fetch_field_direct(FMYSQLRES, I);
if Field.FieldName = fld.name then if Field.FieldName = fld^.name then
begin begin
Move(CurBuf^, PChar(Buffer)^, MySQLDataSize(fld.ftype, fld.length)); Move(CurBuf^, PChar(Buffer)^, MySQLDataSize(fld^.ftype, fld^.length));
if Field.DataType in [ftString{, ftWideString}] then if Field.DataType in [ftString{, ftWideString}] then
begin begin
Result := PChar(buffer)^ <> #0; Result := PChar(buffer)^ <> #0;
if Result then if Result then
// Terminate string (necessary for enum fields) // Terminate string (necessary for enum fields)
PChar(buffer)[fld.length] := #0; PChar(buffer)[fld^.length] := #0;
end end
else else
Result := True; Result := True;
break; break;
end end
else else
Inc(CurBuf, MySQLDataSize(fld.ftype, fld.length)); Inc(CurBuf, MySQLDataSize(fld^.ftype, fld^.length));
end; end;
end; end;
@ -353,7 +353,7 @@ procedure TMySQLDataset.InternalInitFieldDefs;
var var
I, FC: Integer; I, FC: Integer;
field: TMYSQL_FIELD; field: PMYSQL_FIELD;
DFT: TFieldType; DFT: TFieldType;
DFS: Integer; DFS: Integer;
WasClosed: Boolean; WasClosed: Boolean;
@ -374,8 +374,8 @@ begin
for I := 0 to FC-1 do for I := 0 to FC-1 do
begin begin
field := mysql_fetch_field_direct(FMYSQLRES, I); field := mysql_fetch_field_direct(FMYSQLRES, I);
if MySQLFieldToFieldType(field.ftype, field.length, DFT, DFS) then if MySQLFieldToFieldType(field^.ftype, field^.length, DFT, DFS) then
TFieldDef.Create(FieldDefs, field.name, DFT, DFS, False, I+1); TFieldDef.Create(FieldDefs, field^.name, DFT, DFS, False, I+1);
end; end;
finally finally
if WasClosed then if WasClosed then
@ -516,14 +516,14 @@ end;
procedure TMySQLDataset.CalculateSizes; procedure TMySQLDataset.CalculateSizes;
var var
I, FC: Integer; I, FC: Integer;
field: TMYSQL_FIELD; field: PMYSQL_FIELD;
begin begin
FRecordSize := 0; FRecordSize := 0;
FC := mysql_num_fields(FMYSQLRES); FC := mysql_num_fields(FMYSQLRES);
for I := 0 to FC-1 do for I := 0 to FC-1 do
begin begin
field := mysql_fetch_field_direct(FMYSQLRES, I); field := mysql_fetch_field_direct(FMYSQLRES, I);
FRecordSize := FRecordSize + MySQLDataSize(field.ftype, field.length); FRecordSize := FRecordSize + MySQLDataSize(field^.ftype, field^.length);
end; end;
FBufferSize := FRecordSize + SizeOf(TMySQLDatasetBookmark); FBufferSize := FRecordSize + SizeOf(TMySQLDatasetBookmark);
end; end;
@ -532,7 +532,7 @@ procedure TMySQLDataset.LoadBufferFromData(Buffer: PChar);
var var
I, FC, CT: Integer; I, FC, CT: Integer;
field: TMYSQL_FIELD; field: PMYSQL_FIELD;
row: TMYSQL_ROW; row: TMYSQL_ROW;
begin begin
@ -544,7 +544,7 @@ begin
for I := 0 to FC-1 do for I := 0 to FC-1 do
begin begin
field := mysql_fetch_field_direct(FMYSQLRES, I); field := mysql_fetch_field_direct(FMYSQLRES, I);
CT := MySQLWriteFieldData(field.ftype, field.length, row^, Buffer); CT := MySQLWriteFieldData(field^.ftype, field^.length, row^, Buffer);
Inc(Buffer, CT); Inc(Buffer, CT);
Inc(row); Inc(row);
end; end;
@ -918,7 +918,10 @@ end.
{ {
$Log$ $Log$
Revision 1.2 2005-02-14 17:13:12 peter Revision 1.3 2005-03-27 14:55:47 joost
- adapted for new mysql_fetch_field_direct
Revision 1.2 2005/02/14 17:13:12 peter
* truncate log * truncate log
} }