Ouvrir la base de données SQL - entrée utilisateur (Dates) - Erreur lors de la conversion du type de données varchar en datetime.Salut,
J'essaie de me connecter à une base de données SQL dans un script en utilisant l'entrée utilisateur pour les dates.
Lorsque j'exécute le script, j'obtiens l'erreur suivante -
"[Microsoft][ODBC SQL Server Driver][SQL Server]Erreur lors de la conversion du type de données varchar en datetime."
S'il vous plaît, comment puis-je résoudre ce problème?
THX
nw = New Window( "test",
H LIST BOX(
Text box("Start Date"),
a = numbereditbox(0),
a << set format(format("m/d/y")),
a << set width(12),
a << set(today()),
Spacer Box( size( 10, 20 ) ),
Text box("End Date"),
b = numbereditbox(0),
b << set format(format("m/d/y")),
b << set width(12),
b << set(today())),
Spacer Box( size( 1, 20 ) ),
Button Box( "OK",
farray = Eval List(
{a << get text, b << get text}
);
nw << close window;
)
);
dta= Open database("DRIVER=SQL Server; SERVER=XXX; Trusted_connection = Yes",
"
EXEC dbo.listData @Criteria = '
<SYSTEME>
<DATA name="\!"Alarm\!"">
<COLUMNS>
<COLUMN name="\!"Timestamp\!"/">
</COLUMN>
<WHERE>
<COLUMN name="\!"Resource\!"" operator="\!"Like\!"" value="\!"%a12%\!"/">
</COLUMN>
<PROJECTS>
<PROJECT name="\!"abc\!"/">
</PROJECT>
</PROJECTS>
</WHERE>'
,@StartDateTime = '^farray[1]^'
,@EndDateTime =' ^farray[2]^'");
</COLUMNS></DATA></SYSTEME>Re : Ouvrir la base de données SQL - entrée utilisateur (Dates) - Erreur lors de la conversion du type de données varchar en datetime.Pour la date et l'heure, j'utilise l'instruction suivante :
t_now = "'" || Substitute(Format(today(),"yyyy-mm-ddThh:mm:ss"),"T"," ") || "'";
Re : Ouvrir la base de données SQL - entrée utilisateur (Dates) - Erreur lors de la conversion du type de données varchar en datetime.J'ai changé votre fenêtre pour qu'elle soit modale.Sinon, la fenêtre s'affiche et le SQL est tenté d'être exécuté en une seule fois.Je ne suis pas sûr du format requis pour les dates dans SQL Server, vous devrez donc peut-être faire quelques recherches à ce sujet.Copiez l'instruction SQL qui sort dans le journal et essayez de l'exécuter manuellement dans une fenêtre de serveur SQL.
nw = New Window( "test", <<MODAL>
<DATA name="Alarm">
<COLUMNS>
<COLUMN name="Timestamp"></COLUMN>
</COLUMNS>
<WHERE>
<COLUMN name="Resource" operator="Like" value="%a12%"></COLUMN>
</WHERE>
<PROJECTS>
<PROJECT name="abc"></PROJECT>
</PROJECTS>
</DATA>
</MODAL>'
,@StartDateTime = '^start_date^'
,@EndDateTime = '^end_date^']\");
show(sql_statement);
// Uncomment the next line to run the command in SQL Server
//dta= Open database("DRIVER=SQL Server; SERVER=XXX; Trusted_connection = Yes", sql_statement);
Autres modifications - si vous souhaitez utiliser la construction ^xxx^, vous devez l'inclure dans evalinsert().J'ai utilisé les caractères d'échappement entre guillemets \[ et ]\ pour que votre instruction SQL soit un peu plus propre.