大神们跪求进入帮忙啊在不帮小弟只能去跳河喂鱼了

大神们跪求进来帮忙啊。。。。。。。在不帮小弟只能去跳河喂鱼了。
oraQuery->DatabaseName=Database1->DatabaseName;
  Edit2->Text=Now().DateString();
  ShowMessage("1");
  AnsiString s2,s3,s4;
  AnsiString sql_add="insert into table_name(RID, RNAME, RDATETIME, RTEXT)values(3,s2,s3,s4)";
  s2=Edit1->Text;
  s3=Edit2->Text;
  s4=Memo1->Text;
  ShowMessage("2");
  oraQuery->SQL->Clear();
    ShowMessage("3");
  oraQuery->SQL->Add(sql_add);
    ShowMessage("4");
  oraQuery->ExecSQL();
    ShowMessage("5");
  ShowMessage("添加成功!恭喜你");
楼主是学习两年java的小白一只,最近根据公司要求转型c++ 这c++ builder开发工具和Fire Bird数据库连接的,这只是一个简单的新增语句,但是楼主却在sql语句出现了很大的问题。。。。由于深受java洗脑。。。。百度也百度不出来。。。有没有谁能看懂错误的能给我说一下吗,感激不尽啊!!!!!!!!!!呜呜。。。。
------解决方案--------------------
你这个s2、s3、s4变量根本就没有代进去啊

  AnsiString s2=Edit1->Text ;
  AnsiString s3=Edit2->Text;
  AnsiString s4=Memo1->Text;
  AnsiString sql_add="insert into table_name(RID, RNAME, RDATETIME, RTEXT)values(3," + s2 + "," + s3 + "," +s4+ ")";

ShowMessage也应该打印一些有用的信息出来,比如ShowMessage(sql_add)就看能出sql语句是不是正确的,只打印个1234能有什么帮助了
------解决方案--------------------
Edit2->Text = Now().DateString();

AnsiString sql_add = AnsiString().sprintf(
"insert into table_name(RID, RNAME, RDATETIME, RTEXT) values(3, '%s', '%s', '%s')",
Edit1->Text, Edit2->Text, Memo1->Text
);

oraQuery->DatabaseName = Database1->DatabaseName;
oraQuery->SQL->Text = sql_add;
oraQuery->ExecSQL();

------解决方案--------------------
AnsiString sql_add="insert into table_name(RID, RNAME, RDATETIME, RTEXT)values(3,"+s2+","+s3+","+s4+")";