944,045 Members | Top Members by Rank

Ad:
May 17th, 2007
0

'Database is not in insert or edit mode'

Expand Post »
Hi,
I am having difficult time to make this run. Can anyone help me please?.
I have test form with 3 command buttons & one Richedit.Im using access database to test. It have just one table with two fields ID (Integer), sMemo (memo). I am trying to save richedit text (rtf format) to table. When I run this code I get an error 'Database is not in insert or edit mode' I cant get pass that error any idea?

Thank you




unit Blobtest;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, JvExStdCtrls, JvRichEdit,Db, ADODB;

type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
JvRichEdit1: TJvRichEdit;
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;
sConnString: String;
connADO : TADOConnection;
bConnectionSuccesful:Boolean=false;
ADODataSet1 :TADODataSet; //used to select data


implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
//Clear
JvRichEdit1.Clear;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
blobF : TBlobField ;
bs : TStream;
begin
//Save
ADODataSet1 := TADODataSet.Create(ADODataSet1);
ADODataSet1.Connection := connADO;
ADODataSet1.CommandType := cmdText;
ADODataSet1.CursorType := ctKeySet;
ADODataSet1.CommandText :='Select * from table1';
ADODataSet1.Active := True;
ADODataSet1.First;
ADODataSet1.Edit;
blobF := ADODataSet1.FieldByName('sMemo') as TBlobField;
bs := ADODataSet1.CreateBlobStream(blobF, bmWrite) ;
blobF.Clear;
blobF.SetFieldType(ftMemo);
blobF.LoadFromStream(bs);
ADODataSet1.Post;
ADODataSet1.free;
blobF := nil;
blobF.Free;
bs.Free;
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
//Load
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
sConnString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb ;Persist Security Info=False;Jet OLEDB: Database Password=''''';
connADO := TADOConnection.Create(connADO);
connADO.ConnectionString := sConnString;
connADO.LoginPrompt := False ;
connADO.Connected := true;
end;

end.
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
usguy is offline Offline
3 posts
since Apr 2006
May 18th, 2007
0

Re: 'Database is not in insert or edit mode'

1)i haven't worked with ADO, so i can not give you an 100% accurate answer. i took a look into your code and in my opinion everything looks ok.
i'm working a lot with IBObjects, and from there i now that if the database object hasn't requestlive property set to true, then nothing isn't saved into your database even your quey return that the posting event has been accomplished. why your database is not in the insert/edit mode i can not figure out.
2) try to debbug your code using watch and see what's happening with your querry and variables
3) here you can find some topics regarding how to code using ADO
http://delphi.about.com/sitesearch.h...de=3176&type=1

best regards,
Last edited by radu84; May 18th, 2007 at 1:29 am.
Reputation Points: 14
Solved Threads: 16
Junior Poster
radu84 is offline Offline
171 posts
since Dec 2006
May 18th, 2007
0

Re: 'Database is not in insert or edit mode'

Thank you for responding. I appriciate it.
I found it. I get an error on line in Button2Click

bs.Free;

works fine if i comment that code.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
usguy is offline Offline
3 posts
since Apr 2006

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Pascal and Delphi Forum Timeline: Modify Delphi code with seperate application
Next Thread in Pascal and Delphi Forum Timeline: !!! Help ME !!!!!





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC