我正在使用Sybase Unwired Platform 2.1.3开发iOS应用程序在向数据库发送date
参数时出现错误。
这是我的代码,
@try
{
SUP105Sales_order *insertRow =[[SUP105Sales_order alloc]init];
int32_t idValue =2671;
int32_t custID =103;
int32_t sales =506;
insertRow.id_=idValue;
insertRow.cust_id=custID;
insertRow.order_date=[NSDate date];
insertRow.fin_code_id=@"r1";
insertRow.region=@"Hyd";
insertRow.sales_rep=sales;
[insertRow save];
[insertRow submitPending];
[SUP105SUP105DB synchronize];
}
@catch (NSException *exception) {
NSLog(@"Exception---%@",exception.description);
}
服务器日志,
2014-02-28 16:39:41.833 WARN Other Thread-182 [SUP105.server.SUP105DB]{"_op":"C","level":5,"code":412,"eisCode":"257","message":"com.sybase.jdbc3.jdbc.SybSQLException:SQL Anywhere Error -157: Cannot convert '' to a timestamp","component":"Sales_order","entityKey":"3210004","operation":"create","requestId":"3210005","timestamp":"2014-02-28 11:09:41.646","messageId":0,"_rc":0}
我认为上述错误是由于日期格式造成的。我已经尝试了很少的其他方法来向Sup服务器发送日期,但它没有用。
如何将DATE
格式从{@ 1}}表格发送到iOS原生应用的sales_order
列?
感谢您的帮助。
答案 0 :(得分:0)
sybase doc说here
您无法将数据插入时间戳列。您必须通过在列中键入“NULL”来插入显式null,或者通过提供跳过timestamp列的列列表来使用隐式null。每次插入或更新后,Adaptive Server都会更新时间戳值。有关详细信息,请参阅“将数据插入特定列”。
在您的情况下,您的应用程序发送的值似乎是一个空字符串“”,时间戳字段不允许这样做。您可以跳过插入请求中的列,也可以将其设置为“NULL”。
你能尝试一下那些选择。