FoxPro/Visual FoxPro - sqlexec, sqlstringconnect

 
Vista:
Imágen de perfil de cesar

sqlexec, sqlstringconnect

Publicado por cesar (6 intervenciones) el 05/11/2015 18:42:28
Por favor su valioso apoyo.

He realizado el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bd=cpRuta+"DATOS\Seguridad.dbc"
cnx=SQLSTRINGCONNECT("driver=Microsoft Visual FoxPro Driver;SourceType=DBC;SourceDB=&bd")
IF cnx < 0
   = MESSAGEBOX('Conexión fallida', 16, 'SQL Connect Error')
ELSE
   = MESSAGEBOX('Conexión Satisfactoria', 48, 'SQL Connect Message')
ENDIF
 
THISFORM.Grid1.RecordSource=""
 
cmd="Select * From personal"
 
registros = SQLEXEC(cnx,cmd,'sqlpersonal')
 
THISFORM.Grid1.RecordSource="sqlpersonal"
THISFORM.Grid1.column1.ControlSource="sqlpersonal.idpers"
THISFORM.Grid1.column2.ControlSource="sqlpersonal.apellidos"
THISFORM.Grid1.column3.ControlSource="sqlpersonal.nombres"
THISFORM.Grid1.column4.ControlSource="sqlpersonal.sexo"
THISFORM.Grid1.SetFocus
Thisform.Refresh

todo bien la conexion, pero cuando llego a la linea:

1
2
3
4
THISFORM.Grid1.column1.ControlSource="sqlpersonal.idpers"
THISFORM.Grid1.column2.ControlSource="sqlpersonal.apellidos"
THISFORM.Grid1.column3.ControlSource="sqlpersonal.nombres"
THISFORM.Grid1.column4.ControlSource="sqlpersonal.sexo"

me sale mensaje de error diciendo que "sqlpersonal" no es un objeto

así mismo, la variable "registros" obtengo -1, a pesar de tener registros y los datos de los campo esta conforme. espero su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

sqlexec, sqlstringconnect

Publicado por Saul Hernandez (728 intervenciones) el 06/11/2015 05:12:49
Hola Cesar

Intenta esto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
WITH ThisForm.Grid1 		        &&establecemos las propiedades del grid
	.columncount		= 4		 &&indica el numero de columnas
	.readonly			=.T.	         &&solo lectura
	.allowheadersizing	=.T.
	.allowrowsizing		=.T.
	.recordsource		= "sqlpersonal"
 
	.Left 				= 5		 			&& Ajustar posicion de la Grid
	.Forecolor 			= RGB(0,0,0)		&& Texto en Negro
	.GridLineColor 		= RGB(176,230,255) 	&& Color de las lineas que separan las celdas
	.Highlight 			= .T. 				&& La celda aparece selecionada
	.HighlightBackColor = RGB(182,202,234) 	&& Color de la Fila Selecionada
	.HighlightStyle 	= 2 				&& Si la fila esta resaltada, permanece resaltada cuando el usuario cambia el enfoque a otro control del formulario
	.RecordSourceType 	= 1
	 .column1.ControlSource = "idpers"
	.column2.ControlSource = "apellidos"
        .column1.ControlSource = "nombres"
	.column2.ControlSource = "sexo"
 
 
	.column1.header1.caption = "Id"
	.column2.header1.caption = "Apellidos"
	.column3.header1.caption = "Nombres"
	.column4.header1.caption = "Sexo"
 
	FOR grdNegrit=1 TO 4
		ncol = "column"+ALLTRIM(STR(grdNegrit))+"."
		.&ncol.header1.FontBold  =.T.
		.&ncol.header1.Alignment = 2  	&&Alinea Centrado
	ENDFOR
 
	.column1.Width = 70
	.column2.Width = 200
	.column3.Width = 200
	.column4.Width = 100
 
	.allowcellselection=.f.
	*.setfocus
	*.Refresh
ENDWITH

Me cuentas como te va..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cesar

sqlexec, sqlstringconnect

Publicado por Cesar (6 intervenciones) el 06/11/2015 05:26:20
Hola Saul,
te cuento que lo intente pero no es posible obtener los datos en el grid, es mas, intente hacer un SELECT sqlpersonal y luego BROW pero obtengo error: No se encuentra el alias 'SQLPERSONAL'.

No comprendo que sucede.

Gracias por tu apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cesar

sqlexec, sqlstringconnect

Publicado por Cesar (6 intervenciones) el 07/11/2015 22:07:07
nadie me puede ayudar por favor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

sqlexec, sqlstringconnect

Publicado por neo (1604 intervenciones) el 09/11/2015 22:15:56
Mira lo que yo no alcanzo a comprender es, porque realizar una conexion por SQLEXEC () si se puede tener acceso a las tablas.dbf directamente con USE o Select ??

te ahorrarias todo ese SQLEXEC () y el String de conexion ..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cesar

sqlexec, sqlstringconnect

Publicado por Cesar (6 intervenciones) el 10/11/2015 00:08:06
Hola,
Lo que sucede es que tengo previsto migrar a otra base datos y para no hacer cambios en mi sistema más adelante, requiero hacerlo de esta forma.

Sólo he consultado sin pueden o no atender a mi consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

sqlexec, sqlstringconnect

Publicado por neo (1604 intervenciones) el 13/11/2015 15:35:07
Por lo que veo, tu problema está en que no tienes conexion a las tablas, ya sea por error de string de conexion o porque puede que la tabla personal tenga otro nombre, puedes revisar desde alli y luego hacer lo que mencionas select sqlpersonal y brow

Yo actualmente trabajo con mysql y no me parece que el string de conexion esté mal, mas bien pienso que sea un error de nombres en objetos.

si gustas podemos interactuar por skipe o teamviewer.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar