PDA

Ver la Versión Completa : Delphi y SQL server 2000


whiti
15-01-2004, 12:13:09
Hola:
Tengo mi base de datos en delphi 5, con las tablas en access que funciona de manera local. Ahora quiero cambiar las tablas de access a sql server 2000, y que funcione en red, pero no sé como. He visto que en access hay un asistente que convierte a sql server, pero no sé si a parte de usar ese asistente he de hacer algo más. Vamos, estoy bastante perdida. Mi idea es que la base de datos esté alojada en un servidor q tiene windows 2000 server, y que los clientes puedan acceder a la base d datos del servidor, teniendo éstos windows 2000 professional. ¿Qué tipo de sql server necesito? es necesario usar sql server 2000 enterprise en el windows 2000 server, y sql server 2000 msde en los pc's q tienen windows 2000 profesional?.
¿Qué más he de hacer?. En delphi he creado un alias y he usado el componente ttable, tdatasouce y tquery, pero también he oído que es mejor usar un componente tAdotable , para ello, ¿he de eliminar mi alias que uso en la propiedad databasename de mi query?. Como ven, estoy bastante liada.
¿Me pueden ayudar?.
Muchas gracias, y disculpen las molestias.

Cabanyaler
15-01-2004, 15:48:23
Hola, sabia decusión.
No es necesario que utilices ese transformador de access, el propio SQL Server contiene un agente que te traduce BBDD de diferentes naturalezasa otras tantas.
Lo aconsejable (es como yo trabajo) es utilizando con D6 las utilidades de la pestaña ADO y los store procedures (ya los verás en el SQL).
Por lo demás es armarte de paciencia y perder durante la curva de prendizaje (mínima) un poco el tmp hasta dominarlo.
Tienes que cambiar un poco la forma de pensar al trabajar con la filosofía cliente servidor, pero es facil realizarlo. Lo mejor es que práctiques con eemplos antes de acometer un proyecto de embergadura y a ser posible que al principio los usuarios trabjen de forma paralela con las dos aplicaciones al menos hasta comprobar que todo se ejecuta de forma correcta, ya que de todos es conocido que la fase de pruebas en el desarrollo del SW para quellas que desarrollamos proyectos para nuestra propia empresa es igual a la fase de explotación. ;)
Suerte y bienvenido al club de los que vamos a triunfar.....

whiti
16-01-2004, 00:37:53
Muchas gracias por su respuesta, se lo agradezco. El problema es que dispongo de muy poco tiempo y en el trabajo ya me están presionando para que entregue la base de datos ya. Me han dicho que me dan hasta fin de mes, así que como verán, estoy ya muy nerviosa. Si puede ser, me gustaría que me explicasen un poco qué es lo que necesito: sql server 2000 enterprise en el servidor,y sql server 2000 mde, en los clientes?. ¿Utilizando los componentes Ttable de dataAccess de Delphi 5 no puedo lograr que funcione? es que la base de datos ya la tengo hecha y me gustaría cambiarla lo menos posible porque como les digo, estoy bastante apurada. Por último, sigo necesitando un alias?. En fin, esto sí que es un lío. Muchas gracias por su ayuda.
Un saludo.

FNADALO
16-01-2004, 08:38:41
Te comento un poco como lo tengo instalado en un Servidor he puesto
el Sql Server 2000 Enterprise, el servidor es un windows Nt 4 Server, o un windows 2000 Server, es indiferente, el tema de Usuarios estos tienen el windows 2000 Profesional, con la Instalación de Sql Server para clientes, versión Standard que viene en el mismo cd del Sq lServer. Primero desarrolle
una versión en Access 2000, utilizando Delphi 6 con Componentes Ado, una vez pulido el tema migre desde Access 2000 con la utilidad de pasar a Sql Server 2000 la base de datos fue muy bien sin problemas, en el Sql Server 2000 tuve que definir los usuarios. Si puedo ayudarte ante la necesidad que tienes de entregar el proyecto o la base de datos, puedo ayudarte.

whiti
16-01-2004, 10:13:05
Hola! Muchísimas gracias por su ayuda. Ya me va quedando la cosa un poco más clara. ¿Qué componentes ADO he de utilizar?, es que yo he usado TTable, Tquery, Tdatasource (de dataAccess), y nunca he usado los componentes ADO. ¿Qué componentes ha usado en su base de datos?. ¿Cómo hago la conexión con la base de datos que tendría en sql server?.
Una vez más, muchísimas gracias, y un saludo.

FNADALO
16-01-2004, 11:38:52
Los componentes son los siguientes:
un TAdoConnection, en la propiedad ConnectionString Cliklea dos veces y te saldra un Wizard para la conexión, del mismo componente la propiedad Connected pon la a True, y si no quieres que te pregunta por un login cada vez del mismo componente pon la propiedad LoginPrompt a False.

El Siguiente componente es utilizar el TAdoQuery llenaras las siguientes propiedades Connection que especificara la el TAdoConnection anterior, ojo
la propiedad Active le pondras True y llenaras la propiedad Sql que es de tipo Tstring y en ella pondrás el Select.....From....Where... Etc.

y Por último un TDataSource que ya conoces.

Te Comento más yo tengo un DataModule donde tengo el TAdoConnection
solamente este y los TAdoQuery y los TDatasource según la necesidad de
cada Formulario, entonces en implementacion de cada Form pongo el uses
del DataModule, y asi empleo una misma conexion por lo cual te permitira las transacciones por esa conexion, No hay conflictos si hay más de un usuario ejecutando el mismo aplicativo y mismo Formulario, aunque así lo parezca,
espero haberte ayudado, si deseas algo más ya me comentaras.

whiti
16-01-2004, 11:49:49
Muchísimas gracias nuevamente. Me está siendo de una gran ayuda. Ahora estoy tratando de convertir la base de datos access a sql server usando el asistente de access. El problema es que cuando, durante la conversión he de poner el Id. de acceso y la password, me dice que ese login no está asociado a una verdadera conexión sql de confianza. Yo uso la password q pongo para iniciar la sesión en windows, y que además es la misma que usé para instalar sql server enterprise, pero no hay manera. ¿Sabe a qué se puede deber ésto?. ¿Qué puedo estar haciendo mal?.
Gracias de nuevo, y un saludo. :confused:

whiti
16-01-2004, 11:56:49
Hola! se me olvidaba preguntarle, si los componentes Ttable también es necesario que sea del tipo ADO, y si es así, qué propiedades he de cambiar.
Muchísimas gracias, y disculpen.
Un saludo.

FNADALO
16-01-2004, 12:16:05
Tienes arrancado el Mssqlserver en la parte inferior del escritorio??? lo primero
lo segundo mira desde el Administrador Corporativo del Sql Server en
Herramientas Propiedades de Configuracion de Sql Server en la Pestaña
Seguridad marca la autentificacion como Sql Server y windows Nt Nivel de auditoria Ninguno y si tiene el usuario creado marca la opcion de Cuenta del sistema en caso contrario pon está cuenta y contraseña en cuenta pon sa es el equivalente al administrador de Sql Server ,sa,.

El Componente de TTable debe ser el de TAdoTable.

whiti
16-01-2004, 12:46:28
De nuevo muchísimas gracias. Me está salvando la vida :p . Pues tenía razón: tenía como opción seleccionada, la contraseña de windows y no d sql server, así que me ha sido de mucha utilidad. Quería preguntarle si en el panel de control-> ODBC, es necesario configurar ahí un DSN o no hace falta. También me gustaría saber si en delphi, tengo que crear un alias o, al usar los componentes ADO no es necesario.
De nuevo, le agradezco su ayuda, sin ella, estaría perdida.
Un saludo.

whiti
16-01-2004, 13:09:31
Hola! tengo convertida la BD de access a sql server, pero ahora no sé como "introducir" esta BD nueva en sql server, pq allí sólo me aparecen las bases de datos : master... y no sé cómo hacer para que mi nueva base de datos convertida de access a sql server, aparezca.
Quizás sea algo tonto, pero es que acabo de empezar con sql server, y como ven, no tengo idea-.
Gracias por su ayuda, y disculpen las molestias. :confused:

FNADALO
16-01-2004, 13:12:06
No hace falta que te crees un dsn en el panel de control_>odbc,
y tampoco te hace falta crear ningún alias, Prueba el Test de Conexion
cuando en el TAdoConnection en el wizard de conexión; asi te lo permite.
Y podrás comprobar si tienes conexion con el sql Server, y pon un select simple en el tadoquery activando todas las demás propiedades que te he indicado anteriormente pon un grid y asocia el datasource a la grilla y mira si te devuelve el resultado y todo ello si te funciona podrás realizarlo.

Saludos Fernando Nadal
Palma de Mallorca.
Email: fnadalo@inversions.sanostra.es

FNADALO
16-01-2004, 13:24:32
Supongo que te ha generado un Script osea algo con extension Sql,
Desde el analizador de Consultas pon abrir selecciona el script
y ejecutalo con F5.

whiti
16-01-2004, 13:31:03
Muchísimas gracias de nuevo:
Como le dije, en mi proyecto, yo había usado componentes de DAtaAccess, uno de ellos el Tquery, y para hacer las operaciones en la base de datos, ponía como código en delphi:

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From TExperiencia');
Query1.SQL.Add('WHERE TExperiencia.DNI=:pcodigo ');
Query1.ParamByName('pCodigo').AsInteger:=StrToInt(Reg);
Query1.Open;

Fíjese en que uso "ParamByName" en lugar de escribir el código en SQL, pero claro, ahora al cambiar al componente equivalente en ADO, "ParamBYNAme" ya no existe. ¿Sabe cuál es el equivalente de "ParamByName" en un Tquery de ADO?
Muchísimas gracias nuevamente.

FNADALO
16-01-2004, 13:46:49
Mira la Propiedad del TAdoQuery que es parameters
yo lo hago directamente en el select From where :Parametros
fijate que pongo dos Puntos.

De La Respuesta de Access a Sql Server en el wizard de migración
al menos en el Access 2000 debes especificar si te creas una nueva base de datos,
o en una ya existente debes decirle nueva, y no pases la rules las reglas
y el solito te crea la base de datos.

whiti
17-01-2004, 11:38:04
Hola!, estoy tratando de modificar mi base de datos en delphi lo menos posible, así que estoy buscando la manera, de, usando un Tdatabase (y dejando mis componentes de la paleta DataAccess en lugar de ADO), poder conectarme a la base de datos que tengo en el servidor. El problema es que cuando trato de conectarme, me da el siguiente error:"Vendor initialization failed. Cannot load an IDAPI service library. FILE: NTWDBLIB.DLL".
¿Sabe a que se puede deber ésto?. ¿Qué problemas puedo tener si uso los componentes de dataAccess?, es que, como le digo, ya tengo hecha mi BD con ellos, y dado el poco tiempo de que dispongo, cambiar a componentes ADO me resultaría más complejo.
Muchísimas gracias de nuevo.

whiti
19-01-2004, 10:46:38
Hola:
Sigo tratando de comunicar mi programa delphi con la BD en SQL server, y me da el mismo error que os decía en el mensaje anterior. En el servidor he creado un ODBC que se llama "prueba". ¿Alguien sabe cómo debo de indicar en mi TdataBase la ruta de ese ODBC que está en el máquina remota "SERVIDOR"?.
Os agradecería me contestárais.
Muchísimas gracias por todo, y un saludo.

FNADALO
19-01-2004, 11:20:23
Hola Te he ayudado con componentes Ado pero insistes con tus métodos
lo siento pero ya aqui no puedo Ayudarte.

whiti
19-01-2004, 12:02:05
Hola, muchísimas gracias por tu ayuda. Es que la verdad, no se usar los componentes ADO, pues a la hora de hacer la consultas no me sale. Es que estoy acostumbrada a hacer con "Parambyname" y no encuentro ahora el equivalente con ADO, y con la propiedad que me indicabas de "Parameters" no te he entendido. ¿Te importaría ponerme un ejemplo?.
Muchísimas gracias por todo, de verdad.
Un saludo.

droguerman
17-05-2005, 22:06:54
bueno si no vas a usar ADO es importante recordar que el archivo que mencionas NTWDBLIB.DLL es la libreria de conexión con SQL Server, basta con estar en la carpeta Windows\system para que funcione