Use an ADOQuery, Write a "Select" for your table. I use that a lot.
Select * From MyTable Where 0=1
And double click on the ADOquery component. A field list window will be appeared. Add all fields (right click). This way you can use your fields within your Delphi code.
MyTableAFieldFromMyTable.AsInteger := 0;
MyTableAStringFieldFromMyTable.AsString := 'Hello, World';
will set the value to NULL as we know it in SQL server.
Edit: I just checked a working code. I clear the field Video from a table in following code.
Query is just "select * from Ornek Where 0=1" and I do the assignments in Delphi code using fields' .AsInteger, .AsString etc properties.
I just checked some working code of mine and a method named clear exists. Did you just add fields and use the field's methods? I mean not tables or parameters. Just write a select statement, write Delphi code to fill the field values instead of writing insert statements to the query component. ADO will do the rest and it will automatically create an insert query behind.
Maybe mine is different, If i check the class it says TCustomADODataSet. Sorry but I am a somewhat newb.
You should use TADOQuery instead. It is clever enough to create Delete and Insert queries from a Select query and this process is totally transparent to the programmer.