关于用ado在sql server中增加日期形字段的问题(isapi程序)(100分)

  • 主题发起人 主题发起人 ghj1976
  • 开始时间 开始时间
G

ghj1976

Unregistered / Unconfirmed
GUEST, unregistred user!
我在坐一个isapi程序。连接数据库是通过ado,数据库是sql server
在给数据库增加记录时
如果代码如下:则不行。
adotable2.FieldByName('birthday').asdatetime := strtodatetime( ''''+request.ContentFields.Values['bday1']+'-'+ request.ContentFields.Values['bday2']+'-'+request.ContentFields.Values['bday3']+'''');
如果代码为
adotable2.FieldByName('birthday').asdatetime := now;
则可以。

附:提交前的html

<td align="right" width="111"><span class="p3">* </span>生日</td>
<td><font size="2">
<input type="text" name="bday1" maxlength="4" size="4">年
<select name="bday2">
<option value="1">一月</option>
<option value="2">二月</option>
<option value="3">三月</option>
<option value="4">四月</option>
<option value="5">五月</option>
<option value="6">六月</option>
<option value="7">七月</option>
<option value="8">八月</option>
<option value="9">九月</option>
<option value="10">十月</option>
<option value="11">十一月</option>
<option value="12">十二月</option>
</select>

<select name="bday3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>

</font></td>

各位大虾帮帮忙。我今天为这个问题费老了劲。
 
我的附录不见了???
附:提交前的html

<td align="right" width="111"><span class="p3">* </span>生日</td>
<td><font size="2">
<input type="text" name="bday1" maxlength="4" size="4">年
<select name="bday2">
<option value="1">一月</option>
<option value="2">二月</option>
<option value="3">三月</option>
<option value="4">四月</option>
<option value="5">五月</option>
<option value="6">六月</option>
<option value="7">七月</option>
<option value="8">八月</option>
<option value="9">九月</option>
<option value="10">十月</option>
<option value="11">十一月</option>
<option value="12">十二月</option>
</select>

<select name="bday3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>

</font></td>

各位大虾帮帮忙。我今天为这个问题费老了劲。
 
不要用汉字,全用数字;
adotable2.FieldByName('birthday').asdatetime := EncodeDate(year,month,day)
 
EncodeDate函数参数是word类型。
我返回的参数request.ContentFields.Values['bday1']是string类型
有哪个函数可以转换类型???
 
用STRTODATE()完全可以,
但注意全要用数字.(月份!!)
 
是用数字。 它返回的值是数字。如下:
《option value="1"》一月《/option》
《option value="2"》二月《/option》
《option value="3"》三月《/option》
《option value="4"》四月《/option》
《option value="5"》五月《/option》
《option value="6"》六月《/option》
《option value="7"》七月《/option》
《option value="8"》八月《/option》
《option value="9"》九月《/option》
《option value="10"》十月《/option》
《option value="11"》十一月《/option》
《option value="12"》十二月《/option》
为了不让它执行。我用《》代替了<>

 
不用再加引号了。
strtodatetime( request.ContentFields.Values['bday1']+'-'+ request.ContentFields.Values['bday2']+'-'+request.ContentFields.Values['bday3'] )
 
你这位老大也太恐怖了,用不着这么做么,干吗非要用adotable呢?
用adoquery,然后用
执行 'insert table (birthday) values("'+生日的字符串+'")'
不就行了
很多事情都可以让sql server去做的,我们就不要麻烦了
 
试试strtodatetime(strtodatetime( ''''+request.ContentFields.Values['bday1']+'-'+
request.ContentFields.Values['bday2']+'-'+request.ContentFields.Values['bday3']+''''));
或者用.asstring代替.asdatetime
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
805
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部