Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | small fix to the latest fix :) |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0626dd11118950808ccbeccb3d5be20d |
User & Date: | abouchez 2013-12-03 19:53:55 |
2013-12-03
| ||
21:53 | updated notes about older versions of Zeos -> you should better upgrade to latest 7.2 revision as soon as it is stabilized and published! :) check-in: 807863edf4 user: User tags: trunk | |
19:53 | small fix to the latest fix :) check-in: 0626dd1111 user: abouchez tags: trunk | |
19:46 | potential fix of Oracle cursor retrieval, thanks to jvillasantegomez feedback check-in: a509f1da80 user: abouchez tags: trunk | |
Changes to SynDBOracle.pas.
2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 .... 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 .... 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 |
fTimeElapsed.ProfileCurrentMethod; {$endif} fStatement := aStatement; try fExpectResults := true; SetColumnsForPreparedStatement; FetchRows; fCurrentRow := 0; // mark cursor on the first row except on E: Exception do begin SynDBLog.Add.Log(sllError,E); fStatement := nil; // do not release the statement in constructor FreeHandles; raise; end; ................................................................................ fRowFetched := 0; status := OCI.StmtFetch(fStatement,fError,fRowCount,OCI_FETCH_NEXT,OCI_DEFAULT); case Status of OCI_SUCCESS: fRowFetched := fRowCount; // all rows successfully retrieved OCI_NO_DATA: begin OCI.AttrGet(fStatement,OCI_HTYPE_STMT,@fRowFetched,nil,OCI_ATTR_ROWS_FETCHED,fError); if fRowFetched=0 then exit; // no more row available -> return false and fCurrentRow=-1 fRowFetchedEnded := true; end; else OCI.Check(Status,fError); // will raise error end; fRowFetchedCurrent := 0; end; ................................................................................ if fRowFetchedEnded then exit; // no more data {$ifndef DELPHI5OROLDER} fTimeElapsed.Resume; try {$endif} FetchRows; {$ifndef DELPHI5OROLDER} finally fTimeElapsed.Pause; end; {$endif} end; end; |
> > | < < > > |
2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 .... 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 .... 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 |
fTimeElapsed.ProfileCurrentMethod; {$endif} fStatement := aStatement; try fExpectResults := true; SetColumnsForPreparedStatement; FetchRows; if fRowFetched=0 then fCurrentRow := -1 else // no data row available fCurrentRow := 0; // mark cursor on the first row except on E: Exception do begin SynDBLog.Add.Log(sllError,E); fStatement := nil; // do not release the statement in constructor FreeHandles; raise; end; ................................................................................ fRowFetched := 0; status := OCI.StmtFetch(fStatement,fError,fRowCount,OCI_FETCH_NEXT,OCI_DEFAULT); case Status of OCI_SUCCESS: fRowFetched := fRowCount; // all rows successfully retrieved OCI_NO_DATA: begin OCI.AttrGet(fStatement,OCI_HTYPE_STMT,@fRowFetched,nil,OCI_ATTR_ROWS_FETCHED,fError); fRowFetchedEnded := true; end; else OCI.Check(Status,fError); // will raise error end; fRowFetchedCurrent := 0; end; ................................................................................ if fRowFetchedEnded then exit; // no more data {$ifndef DELPHI5OROLDER} fTimeElapsed.Resume; try {$endif} FetchRows; if fRowFetched=0 then exit; // no more row available -> return false + fCurrentRow=-1 {$ifndef DELPHI5OROLDER} finally fTimeElapsed.Pause; end; {$endif} end; end; |