我是一个灵丹妙药/凤凰新手试图找出基础知识,所以我可以加快速度。我很难理解以下架构定义的错误,这使得生成的查询不正确。
附注:我使用Tds.Ecto适配器访问只读MS SQL Server 2005数据库。
defmodule Rodes.Sigcdpro do
use Ecto.Schema
import Ecto.Changeset
alias Rodes.Sigcdpro
@primary_key {:cpros, :string, []}
@derive {Phoenix.Param, key: :cpros}
schema "sigcdpro" do
# field :cpros, :string
field :dpros, :string
end
@doc """
Tabela de produtos
"""
def changeset( %Sigcdpro{} = sigcdpro, attrs ) do
sigcdpro
|> cast( attrs, [:cpros, :dpros] )
end
end
然后,当我在交互式shell上运行以下命令时,出现错误。
iex(8)> Rodes.Repo.all(from p in Rodes.Sigcdpro, where: p.cpros == 'R1156CRY.R1')
[debug] QUERY ERROR source="sigcdpro" db=227.0ms
SELECT s0.[cpros], s0.[dpros] FROM [sigcdpro] AS s0 WHERE (s0.[cpros] = 82, 49, 49, 53, 54, 67, 82, 89, 46, 82, 49) []
** (Tds.Error) Line 1 (Error 102): Incorrect syntax near ','.
(ecto) lib/ecto/adapters/sql.ex:431: Ecto.Adapters.SQL.execute_and_cache/7
(ecto) lib/ecto/repo/queryable.ex:133: Ecto.Repo.Queryable.execute/5
(ecto) lib/ecto/repo/queryable.ex:37: Ecto.Repo.Queryable.all/4
iex(8)>