Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Problemas con SQL 2000 y Delphi (https://www.clubdelphi.com/foros/showthread.php?t=60986)

_Usuario_baja_NF_ 21-10-2008 17:52:19

Problemas con SQL 2000 y Delphi
 
Hola a todos, espero que me puedan ayudar y se los agradecería mucho;

Tengo un servidor SQL 2000 instalado con una base de Datos General de la Empresa, y las aplicaciones que acceden a él están hechas en Delphi, una de estas aplicaciones utiliza la tabla sysUsers del Servidor SQL y extrae el nombre de usuario de la tabla, bien, la cuestión está en que ahora no puedo extraer el valor de ese campo, sin embargo cuando hago la consulta en el Servidor si lo saca, pero cuando pongo esa misma linea de comandos en Delphi, no me deja.

Pregunta: Es posible que haga falta una Unit o algo en Delphi para entrar a la tabla del Servidor.

Gracias de Antemano.

PD:
1.Yo trabajaba en SQL 6.5 y todo iba bien, pero al actualizar a SQL 2000 iniciaron los problemas.
2.Estoy usando Delphi 5 y 7.

luisgutierrezb 21-10-2008 18:11:59

Pero que error te marca? haces la consulta con el mismo usuario?

_Usuario_baja_NF_ 21-10-2008 18:36:07

Query
 
Yo tengo creado un Query en un formulario, cuya consulta es:

Código SQL [-]
Select S1.Name Usuario,S2.Name Grupo
From Sysusers S1, Sysusers S2
Where S1.Uid>2 And S1.Uid<16384 And S2.Uid>16399
            AND S1.Gid=S2.Uid
Order By S1.Gid

cuando yo ejecuto el formulario pregunto por el valor de la variable Usuario y se la asigno a otra tabla:

Código SQL [-]
UpdQuery.SQL.Add('INSERT INTO OrdECompChange');
UpdQuery.SQL.Add('VALUES ('''+ TableOrd.FieldByName('IDORDEN').AsString +
         ''',''' + QueryUser.FieldValues['USUARIO']+''','''+')');

Y me da el error:
[IMG]file:///Z:/delphi1.JPG[/IMG]
Código Delphi [-]
'QueryUser: Type mismatch for Field 'Usuario', expecting: String actual: Unknown'

BlueSteel 21-10-2008 19:00:13

Hola

dices que trabajabas con SQL 6.5 y que ahora te cambiastes a SQL 2000.... y desde entonces no te funciona ??? revisastes que la estructura de la tabla
Sysusers sea la misma en SQL 6.5 y 2000 ???

digo, por que por algo te da ese error ...

Cita:

'QueryUser: Type mismatch for Field 'Usuario', expecting: String actual: Unknown'

Salu2:p:D

_Usuario_baja_NF_ 21-10-2008 19:08:35

Campo NAME
 
El campo NAME al que hago referencia es del tipo VARCHAR en SQL 6.5 y SYSNAME en SQL 2000.
Lo que necesito es obtener ahora con SQL 2000 el resultado que me daba esa consulta.

olbeup 21-11-2008 12:26:31

Esta mal
Código:

UpdQuery.SQL.Add('INSERT INTO OrdECompChange');
UpdQuery.SQL.Add('VALUES ('''+ TableOrd.FieldByName('IDORDEN').AsString +
        ''',''' + QueryUser.FieldValues['USUARIO']+''','''+')');

Te falta QueryUser.FieldValues['USUARIO'].AsString
Código Delphi [-]
UpdQuery.SQL.Add('INSERT INTO OrdECompChange');
UpdQuery.SQL.Add('VALUES ('''+ TableOrd.FieldByName('IDORDEN').AsString +
         ''',''' + QueryUser.FieldValues['USUARIO'].AsString+''','''+')');

Creo que también te sobra el +''','''+')');

Un saludo.

Neftali [Germán.Estévez] 24-11-2008 08:56:27

Recomimiendo para estos casos QuoetedStr; Te evitarías esa cantidad de comillas juntas.

Código Delphi [-]
'VALUES (QuotedStr(TableOrd.FieldByName('IDORDEN').AsString) +
         ',' + 
         QuotedStr(QueryUser.FieldValues['USUARIO']) + 
         ')'
         );

QuotedStr ya te devuelve la cadena con las comillas incluídas.


La franja horaria es GMT +2. Ahora son las 19:59:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi