![]() |
|||||||||||||||||
|
|
|||||||||||||||||
|
|
|||||||||
|
Delphi |
DELPHI DEVELOPER SUPPORT
Areas of concentration under: midas
Area: midas\java midas Problem: ClientDataSetDescriptor constructor( CorbaConnection, String, String) should be got rid of -- we no longer need CorbaServerName parameter. Area: midas\java midas Problem: No context sensitive help for ClientDataSet or CorbaConnection Area: midas\java midas Problem: Parameter binding with two parameters fails. Steps: Create server with query like "select * from customer where CustNo = :p1 and Company = :p2" In jbuilder, bind these two parameters and run. Area: midas\java midas Problem: After changing CorbaConnection.Repository ID, the clientDataSet.providerName is automatically set to NONE, which is correct, but ... the grid still shows the old clientDataSet until you change the clientDataSet.providerName. Steps: Use existing application, change CorabConnection.RepositoryID. (now note that grid still shows old table). Workaround: Easy work-around: change ClientDataSet's providername. Area: midas\socket server Problem: Using only the ServerName causes an AV. Steps: Use the TSocketConnection and try to connect with only a ServerName. Area: midas\socket server Problem: ScktSrvr crashes when trying to set InterceptorGUID incorrectly. Steps:
1. Run scktsrvr (the one shipping with D4.01 OR
the latest one Josh sent me, which is the one JUST
before the version on the web site)
2. Compile and register the Intrcptr demo (the fixed
version with the new DataIn)
3. Open EmpEdit
4. Drop a SocketConnection (SC) on the form and
set the following properties:
* Address= 127.0.0.1
* InterceptorGUID=
{B249776C-E429-11D1-AAA4-00C04FA35CFA}
5. Make SURE there is no Interceptor GUID for
scktsrvr
6. Set SC.Connected=true
You get a socket recv error 10054 followed by a
shutdown of scktsrvr.
Area: midas\socket server Problem: Creating and freeing a SocketConnection in a single method call will AV. Steps:
begin
with TSocketConnection.Create(nil) do
begin
Address := 127.0.0.1;
ServerGUID := '{SOME_VALID_GUID}';
Connected := True;
Free;
end;
end;
Area: midas\socket server Problem: Problem after Update Pack 2 is applied: Whenever one wants to transfer data as an OleVariant data, the client stops receiving and disconnects automatically from the server's Remote Data Module with an "Windows Socket error: (10014) on API 'recv'" error. Workaround:
Here is the fix, which you can now use to fix the
socket server since we
are shipping the source with update #2. The fix is
in SCONNECT.PAS
function TSocketTransport.Receive(WaitForInput:
Boolean): IDataBlock;
begin
...
while StreamLen > 0 do
begin
RetLen := FSocket.ReceiveBuf(P^, StreamLen);
if RetLen = 0 then
raise ...
if RetLen > 0 then { !!! This if needs to be
added !!! }
begin
Dec(StreamLen, RetLen);
Inc(Integer(P), RetLen);
end;
end;
...
end;
Area: midas\tclientdataset Problem: Hidding a field messes up the clientdataset. Steps: 1) On DBDEMOS provide from select CustNo, Company from CUSTOMER 2) Provide from CUSTOMER and set the ProviderFlag for pfHidden to True on the CustNo field. The Company-column will be empty and the company-names will be in the Addr1-column. Area: midas\tclientdataset Problem: SavePoints do not work. Steps: Make a change. Get a SavePoint Make another change Try to revert. SavePoint always returns 0. Area: midas\tclientdataset Problem: Writing a data packet with an optional parameter to a file and then trying to load the file causes the load to hang. Steps:
Open a ClientDataSet, then in a button call
CDS.SetOptionalParam('TEST','TEST');
CDS.SaveToFile('test.cds');
//Now try to open this file
Area: midas\tclientdataset Problem: Inserting a record into the detail table of the attached test case AVs in DBCLIENT.DLL. Area: midas\tclientdataset Problem: A midas application talking to an oracle8 table with CLOB or BLOB fields is not generating query using RETURNING < CLOBFIELD > INTO :PARAM syntax. Trying to update table containing these field types cause bad pointer exception and crashes application. Area: midas\tclientdataset Problem: Calling CancelUpdates after a Refresh causes an AV. It's actually the call to FDSBase.Rollback that causes the AV. Area: midas\tclientdataset Problem: AV when trying to create 1-tier nested dataset Steps: 1. Place a CDS and TTable (DBDEMOS/COUNTRY) on a form 2. Go to CDS FieldDefs and add 2 fields (A (integer) & B (Dataset)) 3. Select CDS Create Dataset (receive a proper error message) 4. Go to CDS Assign Local Data and accept Table1 as the entry After pressing OK, I get an AV in DBCLIENT.DLL Area: midas\tclientdataset Problem: In a master detail relationship the delayed fetching of detail records can cause an AV on a newly inserted master record with no detail records. Area: midas\tclientdataset Problem: Using ClientDataset with DecisionCube produces an AV in dss40.dpl. Steps: 1. File | New | Business | Decision Cube Sample 2. Place a ClientDataset an Provide on the form 3. Set the following properties: Provider1.Dataset=DecisionQuery1 ClientDataset1.ProviderName=Provider1 DecisionCube1.Dataset=ClientDataset1 4. Set ClientDataset1.Active=true Receive an AV error at this point. Area: midas\tclientdataset Problem: When modifying only the nested dataset and then posting the master record without making any edits, the delta remains empty. Area: midas\tclientdataset Problem: ApplyUpdates does not clear the master record in the master-detail demo from the delta. After ApplyUpdates that returns 0, ChangeCount is still > 0. Steps: Run client of MstrDtl demo. Add a Member Click ApplyUpdates //error Area: midas\tclientdataset Problem: You cannot set a range on a detail dataset because the hidden linkfield is the first field in the index. Steps: Try to set a range on a detail table. Area: midas\tclientdataset Problem: Client talking to Corba server talking to many Oracle table with blob field cannot apply updates: get 'catatrophic error' Problem: if null data is passed with blob field, call to DbiQSetParams has invalid data. Should be using BLOBParamDesc structure with '' bytes, instead is trying to pass NULL data by means of null offset. BDE tries to cast iOffset value as BLOBParamDesc and dies in OCI call. Steps: 1. create BDE ORACLE8 alias which talks to ultrabde server, username barney password betty. 2. run attached Ora8serv.exe, which attempts to talk to existing table JMIDAS2. 3. run GenClient.exe, give password betty. 4. add data, then hit Apply Updates button. Get catastrophic error. Area: midas\tclientdataset Problem: LogChanges = False still logs something to the data packet. Area: midas\tclientdataset Problem: When you insert a record, fields should be NOT_CHANGED rather than NULL. This is so I can generate the correct SQL on the server. Steps: Insert a record in the IBLOCAL DEPARTMENT table. Area: midas\tclientdataset Problem: Calling CreateDataSet with a field of type ftFixedChar fails with "Invalid Parameter". Area: midas\tclientdataset Problem: Get "Invalid field type." when you try to create a 3 level deep master detail ClientDataSet. The problem is that iUnits2 must include the total number of embedded fields. In this case it only includes the fields on the next level.. Area: midas\tclientdataset Problem: Adding an IndexDef with a descending field, sorts the entire index in descending order. Going through AddIndex works. Same problem with CaseInsFields. Area: midas\tclientdataset Problem: CancelUpdates does not cause details to resync which causes the display to be incorrect. Area: midas\tclientdataset Problem: OpeningFile variable needs to be a class member otherwise the .Open code is not thread safe. Area: midas\tclientdataset Problem: Delta for changes to Oracle8 fixedlength char fields correctly shows them with a subtype of fixed, but they are bound in DbiQSetParams as varchars. As a result, updates to these fields causes a 'record changed by another user' error. Steps:
make a directory, copy all files.
1. Make a BDE alias named ORACLE8 talking to
ultrabde.
2. Project uses table named JMIDAS5. If this gets
deleted, you can create a new one using attached
CRTTABLE.exe (with bdetest.ini)
CRTTABLE ORACLE8 JMIDAS5
3. start project1, insert record if table is empy, post.
4. change CHAR field, post. refresh, note that
changes weren't made to server. If you put
breakpoint in DbiQSetParams(), you'll find that the
subtype is 0 instead of 31.
5. Test creates pdelta.dat, which shows that delta
has correct subtype.
Area: midas\tclientdataset Problem: raCorrect action does not work. Area: midas\tclientdataset Problem: Refresh on a TClientDataSet that is setup master-detail on the client (not using nested datasets), when PacketRecords is -1 causes the dataset to be emptied. Steps: Provide from CUSTOMER and ORDERS as 2 separate providers. Put 2 TClientDataSets and set them up master detail. Set the detail CDS PacketRecord to -1. Put a button on the form that calls detailCDS.Refresh; Run Click the button Notice the details are empty Area: midas\tclientdataset Problem: Can't do an "and" or "or" in a filter. Get "Incorrectly formed filter expression". Steps: Try the following filter: (CUSTNO = 100) or (CUSTNO = 200) Area: midas\tclientdataset Problem: ClientDataSet does not respect multi-field master-detail links. Get error when the first field is not unique "Linkfields to detail must be unique". Area: midas\tclientdataset Problem: Post and Cancel causes a nested dataset to reposition it's cursor. Area: midas\tclientdataset Problem: "ClientDataSet1 must apply updates before refreshing data" message is returned when trying to refresh data after having inserted records and applied updates. This is happening to a dbase table and apparently there is something to do with deleting a record that has just been added and saved. No, it has todo with deleting a record that contains NULLS, it returns an error :"Record changed by another user" , so the delta is never cleared Area: midas\tclientdataset Problem: SetOptionalParam/GetOptionalParam If you add an optional param to a TClientDataSet and save it to file, you cannot subsequently load the file. The application appears to get stuck in a loop inside dbclient.dll. Area: midas\tclientdataset Problem: Using IndexName dropdown on detail ClientDataSet causes error "List index out of bounds". The same error occurs when IndexDefs.Update is called. Steps: Add 2 ttables, tdatasource, tprovider, and 2 tclientdatasets. Connect to customer.db/orders.db. Set both tclientdatasets active=true. Select IndexName dropdown from detail (orders.db) tclientdataset. Area: midas\tclientdataset Problem: Internal calc field values cannot be initialized from lookup or calculated fields. Steps: Compile and run Server.dpr. Run the EmpEdit and click Button1, note that the grid does not get sorted based on the "EmpCalc" field values. Area: midas\tclientdataset Problem: Cursor position of nested datasets reverts to first record after an ApplyUpdates. Area: midas\tclientdataset Problem: Calling CreateDataSet turns StoreDefs on. Steps: Drop a TClientDataSet. Add any kind of Field object. Right-click < Create Data Set > //Notice StoreDefs is now True Area: midas\tclientdataset Problem: Decision Cube against TClientDataSet shows incomplete data. Steps: 1. File | New | Business | Decision Cube Sample 2. Place a ClientDataset an Provide on the form 3. Set the following properties: Provider1.Dataset=DecisionQuery1 ClientDataset1.ProviderName=Provider1 DecisionCube1.Dataset=ClientDataset1 4. Set ClientDataset1.Active=true See that there are only values "AmEx" and "COD" for Payment. DecisionQuery1 also shows "Cash", "Check", etc. Area: midas\tclientdataset Problem: ClientDataset.MasterSource displays it's own Datasource component in the drop down list. Steps: Try to hook up a master/detail relationship with 2 TTables and notice the circular reference is totally avoided by not even displaying inappropriate datasources in the property editor. Area: midas\tclientdataset Problem: Locate fails when using partial key and not case insensitive and data includes a record that would match first if using case insensitive. Steps: In alchtest, open customer. Insert records with strings "BIG ONE" and "Big Two" On locate tab, check Partial Key and uncheck Case Insensitive. Locate for the value "Big". No record is found. Area: midas\tclientdataset Problem: Allow 1-tier table definitions for CDS to be defined using Fields Editor Steps: 1. Drop a ClientDataset on a form 2. Right-click and select the Fields Editor 3. Select "Add Fields" menu item Error message: "Missing data provider or data packet" You can define fields in FieldDefs. Defining them here Area: midas\tclientdataset Problem: Aggregate field expressions If you create an expression that refers to a regular calculated field, you get the message 'bits index out of range' when you try to activate it. If you use the InternalCalc field type , however, it works fine. Probably WAD, but the help message is unhelpful. Area: midas\tclientdataset Problem: adding fields to the fields editor from a clientdataset that is attached to a flat file but active = false gives error: missing data packet or provider. One can set active = true then add the fields Steps: Use a CDS & set the filename property to a valid .cds file. double click on CDS to bring up fields editor. right click on fields editor and select "Add all fields"; Get the error "Missing DataPacket or Provider". Set the CDS.Active to true then add all fields - no error. Area: midas\tdatasetprovider Problem: TDataSetProvider does not fully work with a TClientDataSet as its DataSet source. It works just fine with a normal TTable, though. Steps: You will need to create two projects For the first project (the server): 1A) Start a new application 1B) Add a RemoteDataModule 1C) Add a TTable, a TClientDataSet, and two TDataSetProviders (named TableDSProvider and ClientDSProvider) 1D) Set the component properties as follows: Table.DatabaseName = DBDEMOS Table.TableName = ANIMALS TableDSProvider.DataSet = Table ClientDataSet.ProviderName = TableDSProvider ClientDSProvider.DataSet = ClientDataSet 1E) Export both Providers 1F) Save, compile, and register. For the second project (the client): 2A) Start a new application 2B) Add a TSocketConnection and set the address to 127.0.0.1 (Make sure either the SocketServer or SocketService is running). Also, set the ServerName to the first project's. Set Connected to True. 2C) Add a ClientDataSet and set it's RemoteServer property to SocketConnection1. 2D) Add a TDataSource and TDBGrid as well and set the TDataSource's DataSet property to the ClientDataSet and the DBGrid's DataSource to the TDataSource. 2E) Now, go back to the ClientDataSet. Set the ProviderName property to TableDSProvider and Activate the ClientDataSet. You should see data in the grid. 2F) Now, deactivate the ClientDataSet and change the ProviderName to ClientDSProvider and reactivate. You should see FieldNames and a series of blank records in the grid. Area: midas\tdcomconnection Problem: AV when canceling out of the login dialog. Steps:
Hook up a connection component and a
ClientDataSet to any provider.
Set the LoginPrompt property to True.
Drop a button and attach the following code.
ClientDataSet1.Provider.DataRequst('bogus');
Run the app.
Click the button.
Click Cancel.
Area: midas\tdcomconnection Problem: Switching indexes with MIDAS in D4 does not work Area: midas\tmidasconnection Problem: Suggestion: TMidasConnection needs to provide access to the OnError event of the TClientSocket so that users can response to errors that occur on the socket connection. Area: midas\toleenterpriseconnection Problem: Cannot use the OLEnterpriseConnection with the broker. Steps: Attempt to use the OLEnterpriseConnection with the Broker. Doesn't work. Area: midas\tprovider Problem: After an ApplyUpdates, the source dataset is left open. This causes refreshing of data to fail. Steps: ApplyUpdates then check the Active property of the source dataset. Area: midas\tprovider Problem: If client and server change same value, client change is disregarded and server value is automatically pulled to client. Area: midas\tprovider Problem: Descending indices on the server are not propogated to the client correctly. The problem results when the client attempts to retrieve the next packet of records and instead ends up downloading all of the data not just the next N records as indicated in PacketRecords. Steps: 1. On an RDM export a table with a descending index 2. Create a client to access this table and set PacketRecords to 10. 3. Connect a grid to the client and run the app. 4. Scroll the grid so that you retrieve the next packet of records and notice that the client ends up downloading all of the records in the table. Area: midas\tprovider Problem: If you get an error when resolving a record that has an intenalcal field, you get an error message on the client side. Area: midas\tprovider Problem: DBIGetSQLRequest does not support quoted params. This causes the provider not to supply a table name on some queries. Steps: Try to resolve when the source query is "select * from customer where customer."CustNo" = :"CustNo" Area: midas\tprovider Problem: Parser does not handle SQL statement with a join, but where all fields come from 1 table. Area: midas\tprovider Problem: If you put a tablename in with lowercase, ApplyUpdates will fail. Area: midas\tprovider Problem: If you raise an exception in the BeforeUpdateRecord event, the exception does not get raised properly on the client. Area: midas\tprovider Problem: When applying updates to a stored procedure that you call with a TQuery, you get "Table does not exist" because it is trying to open a table to find it's key which doesn't exist. Area: midas\tprovider Problem: Block read causes the boundary records to be fetched twice. Steps: Run SQL Monitor while fetching small amounts of data (PacketRecords = 3). Notice that the first and last record in each packet is fetched twice. Area: midas\tprovider Problem: Need to provide a way to edit the delta datapacket in the OnUpdateData event. Steps: Change the contents of the Delta in the OnUpdateData event. Note it doesn't work because the delta dataset is readonly Area: midas\tremoteserver Problem: Deleting an unmatched record from a dataset based on an outer join causes a resolver callback error "Couldn't perform the edit because another user changed the record." Area: midas\tsimpleobjectbroker Problem: Connecting twice with the object broker causes an AV. Area: midas\tsocketconnection Problem: Attempting to set connected to True on a SocketConnection with no ServerName has an AV. Area: midas\tsocketconnection Problem: ScktSrvr should only allow one instance to be run at a time. Steps: 1) Run scktsrvr 2) Run another copy of scktsrvr Notice the socket error 10048 on bind that gets generated.
NOTE: These listings are for informational use only. It is not intended for use when calling Borland's Developer Support Department. If you have any suggestions or complaints about these 'Delphi Enhancements and Fixes' pages, please contact the Delphi Administrator. This e-mail address is not intended for support issues. |
|
|
|
|||||
| Made in Borland® Copyright© 1994-2003 Borland Software Corporation. All rights reserved. Report Piracy, Legal Notices, Privacy Policy Last Modified Thursday, 22-Mar-2001 18:57:03 EST |
|||||