向服务器发送日期参数时出现SUP错误

时间:2014-03-03 07:04:59

标签: ios objective-c sup smp

我正在使用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列?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

sybase doc说here

  

您无法将数据插入时间戳列。您必须通过在列中键入“NULL”来插入显式null,或者通过提供跳过timestamp列的列列表来使用隐式null。每次插入或更新后,Adaptive Server都会更新时间戳值。有关详细信息,请参阅“将数据插入特定列”。

在您的情况下,您的应用程序发送的值似乎是一个空字符串“”,时间戳字段不允许这样做。您可以跳过插入请求中的列,也可以将其设置为“NULL”。

你能尝试一下那些选择。