简单问题!(大送分)(200分)

  • 主题发起人 主题发起人 wangsangwu
  • 开始时间 开始时间
W

wangsangwu

Unregistered / Unconfirmed
GUEST, unregistred user!
以前是学习Delphi的
现在改学BCB
发现C++语法好像比Pascle要严谨很多,所有现在很是不爽。现在有几个问题
想问问:
1 怎样动态创建Adodataset(TAdodataset *Dstemp = new TAdodataset)好像不行
2 在delphi 中 Sql语句 可以写成这样'select a from Tb where a = '+''''+Edit1.text+'''' ;
其中a为字符型的,如果Edit1.text 为111,则生成Sql语句为样'select a from Tb where a = '111'
但是在BCB中如果这样写样"select a from Tb where a = "+" '"+Edit1.text+" ' " ;
好像不行。
3 我发现在combobox 中的click 事件怎么是在下拉列表关闭时才触发。
在Delphi中就不是这样,只要combobox 一点就出来。不知道这是为什么。
4 有没有什么办法将一个String 类型的变量转换为常量类型。
5 String类型和AnsiString类型有什么联系或者区别,有什么函数相互转换。
 
Pascal是强类型语言,即使你用纯C++而不用C,也不可能比Pascal还严谨。
1 没试过
2 Edit1->Text试试看
3 Delphi中也是在选择下拉列表中的某一项后才触发OnClick的,刚刚试过了,D6下。
Delphi 的Help中关于OnClick的说明里好像也提到过各种不同控件的OnCLick触发条件
4 不可能的。常量是在设计时定义的,变量是在运行时赋值的,不可能变成常量。编程常识。
5 强制类型转换。
 
1:cb中有TADODataSet控件可以看一下帮助
2:Edit1->Text
3:再试试;CB中的该控件与Delphi中该控件事件控制类似
4:同意楼上
5:AnsiString类似与Delphi中的long string类型,好象没有现成的函数可用
 
5:可以强制类型转换
 
1:ADO的相关对象其构造函数是虚函数,也就是说只能靠拖控件来用了。
2:应该没有问题,你在"+"号前后加空格试试看,或者是漏了一个"号(我老是这样)?
3:没办法的啦,适应适应吧。
4:同意楼上。
5:看帮助可以得到完整的信息(查basic_string),一般很少用到String吧?AnsiString
是个类,和VC++的CString有点像,可以用c_str方法转换成char*类型,然后就什么字符类
型都能转了。
 
补充三点:
1。要学会自己看帮助,如果想用new这个关键字的话,必须看对应类的构造函数
2。在CB中,凡是属于Vcl类的都是指针类型,只能用->访问其属性和方法
3。String和AnsiString的区别之一是如果将其看成数组,前者的起始下标是1,后者是零,其他好像差不多
 
问题基本上已经解决了。
1 TAdodataset *dstemp = new Tadodataset(this) ;
2 可以利用Ansistring的方法Ansistring(“...”);
3 在combobox 的ONDrawDown 中解决就可以了。
4 有些参数要求是Const型,但是可以付给他非Const型的。例如Fieldbyname()等。
这个问题不知道是为什么??
5 其实Ansistring 和Delphi中的String差不多。
多多谢谢各位了。
上分!!!
 
后退
顶部