• 0

[DELPHI] Invalid Parameter


Question

Gentlemen,

I'm trying to copy one TClientDataSet into another TClientDataset using a TDataSetProvider

constructor TDataSetIteratorItem.Create(aName: String; aDataSet: TDataSet);
var
  TempProvider : TDataSetProvider;
  Bookmark : TBookmark;
begin

  FName := aName;
  FDataSet := TClientDataSet.Create(nil);

  // Copy the dataset in the clientdataset
  TempProvider := TDataSetProvider.Create(nil);
  aDataSet.DisableControls;

  try
    Bookmark := aDataSet.GetBookmark;
    aDataSet.First;
    TempProvider.DataSet := aDataSet;
    FDataSet.Data := TempProvider.Data;

    if assigned ( Bookmark ) and ( aDataSet.BookmarkValid( Bookmark ) ) then
      aDataSet.GotoBookmark(Bookmark);

  finally
    FreeAndNil( TempProvider );
    aDataSet.EnableControls;
  end;
end;

FDataSet.Data := TempProvider.Data; raises a "EDBCLient invalid parameter" error

Does anybody know how to resolve this problem?

Thx in advance.

Link to comment
https://www.neowin.net/forum/topic/286344-delphi-invalid-parameter/
Share on other sites

6 answers to this question

Recommended Posts

  • 0

the API says that Data is readonly and you are trying to assign a value to the property.

FDataSet.Data := TempProvider.Data;

try

FDataSet.DataSet := TempProvider.DataSet;

  Quote

TCustomProvider.Data

Denotes a data packet created by the provider.

property Data: OleVariant;

Description

Data is a read-only property that is provides access to a data packet containing all records. Reading Data calls GetRecords with a parameter of -1.

As implemented in TCustomProvider, GetRecords returns NULL. Descendants of TCustomProvider reimplement the GetRecords method to implement the Data property.

  • 0

Thanks for your reply.

The strange thing about this is that I have a couple more TClientDataSets that work perfectly this way.

Maybe it has something to do with a onchange event? some fields have onchange events.

Maybe the TClientDataSet needs to be in a specific state?

Anybody any clues?

Thx in advance.

  • 0

Hi,

Sorry for my delayed anwser.

I'm working with a DataSetIterator, a Iterator for...well...Datasets.

In the code I posted a DataSetIteratorItem is being created but fails.

Because of the "Invalid parameter" exception.

You see this DataSetIterator is part of our framework so i can't adjust the framework for my problem.

I think it has something to do with the dataset I'm trying to store in this Iterator.

Any clues ?

Thanks in advance.

  • 0

sorry I have know idea how a DataSetIteratorItem works, never used it.

I dont think anybody on neowin is going to be able to help you with this one.

... why would you have a DataSetIterator, when all you need to traverse a dataset is next, first, last, previous which is built into TClientDataSet?

sorry I havent been much help.

  • 0

Hi,

I resolved the problem.

It had something to do with a lookupfield on the clientdataset.

Once I deleted the "corrupt" lookup and added it again, it didn't give the exception.

Altough it is the same lookup with the same keyfield etc.. :cry:

Oh well thanks anyways.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Windows 11 blocks Google Chrome due to a Microsoft safety feature, fix out by Sayan Sen Microsoft has a parental control and safety feature called "Microsoft Family Safety" which allows users to create safe spaces for their family members for browsing the web by setting up filters so as to block and filter inappropriate content and limit browsing to kid-friendly and family friendly content. However, as it turns out, following Chrome version updates 137.0.7151.68, 137.0.7151.69, Google's web browser is getting automatically blocked by Microsoft Family Safety as affected users have reported that the browser will automatically close or crash and then fail to reopen. Thus if you are using Edge, you get the green signal from the Family Safety app, but not if you are using Google Chrome. The issue seems to be affecting mainly Windows 11 devices but Windows 10 or macOS may be affected too. A thread on Microsoft's official Windows forum by Peter Priestley1, which is presumably from an educational institute, says: The thread has been upvoted by 122 people at the time of writing. There are plenty of other such threads online and users also say that they have tried all sorts of things like refreshing cookies and appdata but "nothing" seems to fix it. This shows that Microsoft's safety feature is certainly robust and that it is not easy to bypass but it also means affected users are not too happy about it considering it is seemingly blocking all versions of Chrome. There is one fix that worked though, renaming chrome.exe to something else like chrome1.exe for example. A Chrome community manager, Ellen T, has confirmed that the Microsoft feature is indeed what is causing it and the only way to fix the issue is to "unblock Chrome" inside the Family Safety app. Ellen says: Microsoft has also shared a similar guidance on the issue according to Fred SR., a senior member of the Chrome community.
    • Typical Microsoft... Go half way and then lazily stop. As if adding all the other directional options would have been so difficult...
    • Some of these robots are getting pretty human-like, but obviously stronger and more bendy. Weight and balance is probably a big hurdle because of all the batteries they have to pack in them, but it'll continue to improve. I'm guessing these companies foresee a future where every household has a robot slave...I mean, assistant.
  • Recent Achievements

    • Week One Done
      Helen Shafer earned a badge
      Week One Done
    • First Post
      emptyother earned a badge
      First Post
    • Week One Done
      Crunchy6 earned a badge
      Week One Done
    • One Month Later
      KynanSEIT earned a badge
      One Month Later
    • One Month Later
      gowtham07 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      660
    2. 2
      ATLien_0
      270
    3. 3
      Michael Scrip
      218
    4. 4
      Steven P.
      162
    5. 5
      +FloatingFatMan
      159
  • Tell a friend

    Love Neowin? Tell a friend!