• 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

    • I've put it behind a login for the time being.  I had something like 600,000 requests from just from Alibaba IP addresses that didn't clarify they were bots or scrapers, and so not easy to block using user agent filtering.  I didn't have any issues with bandwidth or accessibility, but that's 600,000 requests just from one cloud provider made to my spinning rust hard drives, that I have to personally pay for when they die, by bots being ran by corrupt mega corporations ignoring my polite requests that they not scrape me and that the information only be accessed by real humans. If any of y'all here were actually using my Kiwix mirror, I have no issue whatsoever creating a username and password for you, just hit me up using one of the methods listed on my personal site and I'll make one for you. https://marcusadams.me
    • I always turn encryption off 1st boot, crazy its on by default on new computers, it should ASK you ON or OFF on 1st boot,, So many people dont even know its on , then forget their windows login and microsoft account,, RETarDED Microsoft is now, , i also find having it on slows things down too
    • Adding AI is just an excuse to hike prices. I don't want any AI features in our Slack workspace and yet will have to pay for it.
    • Hello Could you be kind too help me fix this 3.1gig and not 256gig it says 3.1gig only .someone told me to fix it with this https://www.disk-partition.com/articles/64gb-flash-drive-only-showing-32gb-5740i.html yes my sandisk ultra usb 3.0 256gb wont show up in full .  but i don't know want options i have to use on there can someone  please guide me with step by step instructions please  guide me with step by step instructions on how to repair this .sorry for asking but I've tried but i don't know want i have to do on that programme please help me i am on windows 11 home thank you nick
    • AI is as big a scam as FTX was...run by the same 'group' of people as well.
  • Recent Achievements

    • Week One Done
      vivetool earned a badge
      Week One Done
    • Reacting Well
      pnajbar earned a badge
      Reacting Well
    • Week One Done
      TBithoney earned a badge
      Week One Done
    • First Post
      xuxlix earned a badge
      First Post
    • First Post
      Tomek Święcicki earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      673
    2. 2
      ATLien_0
      288
    3. 3
      Michael Scrip
      223
    4. 4
      +FloatingFatMan
      195
    5. 5
      Steven P.
      144
  • Tell a friend

    Love Neowin? Tell a friend!