rickytong
asked on
SQL INSERT
The codes here runs fine until the RevertQuery.Open.
It display a message saying 'Error creating cursor handle'
after records are selected.
RevertQuery.Close;
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' INSERT INTO CALLS.DB ');
RevertQuery.SQL.Add( '( SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS )');
RevertQuery.SQL.Add( ' SELECT ');
RevertQuery.SQL.Add( ' SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS ');
RevertQuery.SQL.Add( ' FROM xxxCALLS.DB ');
RevertQuery.Open;
It display a message saying 'Error creating cursor handle'
after records are selected.
RevertQuery.Close;
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' INSERT INTO CALLS.DB ');
RevertQuery.SQL.Add( '( SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS )');
RevertQuery.SQL.Add( ' SELECT ');
RevertQuery.SQL.Add( ' SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS ');
RevertQuery.SQL.Add( ' FROM xxxCALLS.DB ');
RevertQuery.Open;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Ye,
DPedrelli is right. But you must split your SQL statement in two parts. In your case it should be
RevertQuery.Close;
{-----------1st part------------}
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' INSERT INTO CALLS.DB ');
RevertQuery.SQL.Add( '( SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS )');
RevertQuery.ExecSql;
{-----------2nd part------------}
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' SELECT ');
RevertQuery.SQL.Add( ' SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS ');
RevertQuery.SQL.Add( ' FROM xxxCALLS.DB ');
RevertQuery.Open;
AP
DPedrelli is right. But you must split your SQL statement in two parts. In your case it should be
RevertQuery.Close;
{-----------1st part------------}
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' INSERT INTO CALLS.DB ');
RevertQuery.SQL.Add( '( SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS )');
RevertQuery.ExecSql;
{-----------2nd part------------}
RevertQuery.SQL.Clear;
RevertQuery.SQL.Add( ' SELECT ');
RevertQuery.SQL.Add( ' SERIALNO, DATECALL, CALLTYPE, ');
RevertQuery.SQL.Add( ' TIMECALL, EXTENSION, TRUNK, ');
RevertQuery.SQL.Add( ' DURATION, DEST, PH_NUMBER, ');
RevertQuery.SQL.Add( ' COST, TRAN_FROM, CALLSTATUS ');
RevertQuery.SQL.Add( ' FROM xxxCALLS.DB ');
RevertQuery.Open;
AP
Regards,
Viktor Ivanov