0

jaydata + sqlite を使用してオフライン db を管理しています。jaydata では、nvarchar(20) は有効なデータ型ではないため、データ型として「String」を使用する必要があります。オンライン データベースは、データ型を nvarchar(20) として使用しています。

さて、私の質問は次のとおりです:「nvarchar(20)」はオンライン db のデータ型であり、「string」はオフライン db のデータ型であるため、オフライン db とオンライン db の両方をマップすることは可能ですか??


これは、オンラインデータベースで作成することになっているものです。

ここに画像の説明を入力

これは、オフライン データベースで jaydata+sqlite を使用して作成したものです。


// Table definition of  user
$data.Entity.extend("user", {
    'UserId'        :  { key:true,type:'int',nullable:false,required:true  },
    'Username'      :  { type:'string',nullable:false,required:true },
    'Password'      :  { type:'string',nullable:false,required:true},
    'UserType'      :  { type:'string',nullable:false,required:true},
    'CreatorId'     :  { type:'int',nullable:false,required:true},
    'CreatedAt'     :  { type:'datetime',nullable:true},
    'ModifierId'    :  { type:'int',nullable:true},
    'ModidiedAt'    :  { type:'datetime',nullable:true},
    'IsDeleted'     :  { type:'boolean',nullable:false,required:true}
});
4

1 に答える 1

1

免責事項: 私は JayData の作成者の 1 人です。

オンライン スキーマを使用して、オフライン データベースを作成できます。NVarchar(20) は OData 型でさえないので、maxLength=20 修飾子を付けた 'Edm.String' になると思います。ただし、Edm.String は JavaScript のタイプ「String」にマップされます。

スキーマ定義を共有すると、より良い回答を得るのにも役立ちます。

編集済み

次のスキーマ定義は、オンライン エンドポイント (odata または REST で提供) で機能し、同じテーブル定義をローカルに作成します。

$data.Entity.extend("user", {
    'userid'        :  { key:true,type:'string', maxLength:216,required:true  },
    'username'      :  { type:'string',maxLength:216, required:true },
    'password'      :  { type:'string',maxLength:64,required:true},
    ....
});

これはあなたが必要としていたものですか?javascript は内部的に UTF8 であるため、JS ではすべての文字列が nvarchar であることに注意してください。

于 2013-11-14T13:48:21.033 に答える