2014-03-03 132 views
1

我正在開發使用Sybase Unwired Platform 2.1.3的iOS應用程序發送date參數到數據庫時發生錯誤。向服務器發送日期參數時發生SUP錯誤

這裏是我的代碼,

@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]; 
    [email protected]"r1"; 
    [email protected]"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格式發送到sales_order表到order_date列iOS原生應用程序?

感謝您的幫助。

回答

0

Sybase的醫生說here

你不能將數據插入timestamp列。您必須通過在列中鍵入「NULL」來插入顯式空值,或者通過提供跳過時間戳列的列列表來使用隱式空值。 Adaptive Server會在每次插入或更新後更新時間戳記值。有關更多信息,請參閱「將數據插入特定列」。

在你的情況下,你的應用程序發送的值似乎是一個空字符串「」,它不允許用於時間戳字段。您可以跳過插入請求中的列或將其設置爲「NULL」。

你可以嘗試一個這些選項。

+0

我試過了你說的..但沒有結果..我想我不會在sales_order表中發送正確的日期格式爲Date數據類型。 –

相關問題