ATOUTFOX
    COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO

Forum AtoutFox

Le forum AtoutFox

Forum

RSS © www.atoutfox.org - Forum

Mise à jour table PGSql depuis VFP9 dans une grille
Bonsoir,

J'ai une vue sur une table dans une BDonnees PostGreSql (vtable sur la table table1).

dans un formulaire, formulaire.Load ce code :

[VFP]

lvue = "select * from vtable"
sqlExec(nconnect,lvue,'Ctable')

[/VFP]

Dans le formulaire, une grille, formulaire.grille.RecordSource = Ctable

après un insert ou un update, la grille disparait même si je ré-exécute le code ci dessus

En relançant le formulaire, l'insert ou l'update est effectué.

Comment rafraichir la grille. Le REQUERY() ou REFRESH ne marche pas.

Merci de votre aide et Bonne fin de soirée.

Alain MAHALLA



Sun, 26 Jan 2020 00:29:38 GMT

Format date dans un champs cursoradapter
Bonjour à tous,

on essaie d'injecter des données dans des fichiers ADT ( Advantage data architect ) au départ de VFP 9.
On se sert de la classe Cursoradapter.
Dans la table Dbf à injecter la date est au bon format mais lors du insert la date se retrouve à l'américaine dans la table ADT.

Comment puis je avoir un bon format de date dans la table ADT ?

Merci d'avance pour l'aide

bernhart




Sat, 25 Jan 2020 00:29:38 GMT

Hacker's Guide to Visual FoxPro est devenu Open Source
Pour ceux que cela intéresse

Par Doug Hennig

I am pleased to announce on behalf of the authors of "Hacker's Guide to Visual FoxPro" (Tamar Granor, Ted Roche, Della Martin, and me, with contributions from Steven Black) that the book is now open source: https://hackfox.github.io/.

Most people consider HackFox to be the "bible" for VFP developers because it goes far beyond the VFP help and tells you how VFP really works. It advises which commands and functions to use, which to avoid, and the best way to accomplish certain tasks.

HackFox has gotten a little long in the tooth since it wasn't updated after VFP 7. Hopefully making it open source will allow it to flourish as people in our community update existing topics and add new topics for VFP 8 and 9. Also, the online content currently closely matches that of the book but that may change over time so it can become a better online resource.


Mon, 20 Jan 2020 00:29:38 GMT

Stonefield Database Toolkit est devenu Open Source
Pour ceux que cela intéresse

Par Doug Hennig

Inspired by Steve Black open sourcing INTL, I've decided to open source Stonefield Database Toolkit (SDT).

SDT was originally created in 1995 and Stonefield Software sold a ton of copies of it over the years, making it one of the most popular add-ons for Visual FoxPro ever. However, nearly 25 years later, my baby has grown up and it's time to open it up and share it freely with the VFP community that has supported us all this time.

You can find the open source version of SDT at https://github.com/DougHennig/StonefieldDatabaseToolkit. It includes all source code, documentation (as a CHM file, including West Wind HTML Help Builder source; I didn't convert it to Markdown), and tutorial files. Enjoy!


Mon, 20 Jan 2020 00:29:38 GMT

Re: SQL et Postgresql bis
Bonsoir et pardon pour le retard de réponse.

merci pour la bonne syntaxe sql

bonne fin de soirée

Alain


Fri, 17 Jan 2020 00:29:38 GMT

Re: Bloquer Un thread avec winexec ou shellexecute
Bonjour Jean ,

le problème est réglé.
c'est Boblink.exe ( BOB50 SAGE ) qui récupère un fichier dbf et centralise .

J'ai pris une contribution de ce groupe forum ( processlist ) + 1 timer qui va toutes les 2 secondes vérifier que boblink.exe n'est pas ouvert.

Bernhart


Fri, 17 Jan 2020 00:29:38 GMT

Re: SQL et Postgresql bis
Correction (manque ")

[VFP]
lvalue = [insert into vtable2 (idtable2fk,ctable2) values (select idtable1, 'valeurTab2' from vtable1)]
=sqlexec(m.nhandle, m.lvalue)
lvalue = [select * from table2]
=sqlexec(m.nhandle, m.lvalue)
[/VFP]


Tue, 14 Jan 2020 00:29:38 GMT

Re: SQL et Postgresql bis
Bonjour,
[VFP]
lvalue = "insert into vtable2 (idtable2fk,ctable2) values (select idtable1, 'valeurTab2' from vtable1)
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]
Devrait fonctionner.
Cordialement
GLS


Tue, 14 Jan 2020 00:29:38 GMT

Re: SQL et PostgreSql
Rebonjour,

le sujet s'est fractionné ??

je ré envoie la suite :


je récupère le résultat de ma requête dans la fenêtre 'Session de données'

sqlresult => 1 ligne = 1,valeurtab1

-Question : Est ce que je peux nommer ma requête dans 'lvalue'?

2° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => sqlresult = 1,1,valeurtab2


3° écriture :

[VFP]

lvalue = "select * from vtable1"
sqlexec(nhandle,lvalue)
nvar = sqlresult.idtable1

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (?nvar, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => 2,1,valeurtab2


4° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (select idtable1 from vtable1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Pas de résultat !!! Erreur dans la 1° lvalue.
Je n'arrive pas à la détecter.

Merci pour toute aide et bonne journée.

Alain



Mon, 13 Jan 2020 00:29:38 GMT

Re: SQL et PostgreSql
ReBonjour,

La suite de la question .

je récupère le résultat de ma requête dans la fenêtre 'Session de données'

sqlresult => 1 ligne = 1,valeurtab1

-Question : Est ce que je peux nommer ma requête dans 'lvalue'?

2° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => sqlresult = 1,1,valeurtab2


3° écriture :

[VFP]

lvalue = "select * from vtable1"
sqlexec(nhandle,lvalue)
nvar = sqlresult.idtable1

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (?nvar, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => 2,1,valeurtab2


4° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (select idtable1 from vtable1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Pas de résultat !!! Erreur dans la 1° lvalue.
Je n'arrive pas à la détecter.

Merci pour toute aide et bonne journée.

Alain
Bonjour,

Je veux mettre à jour des tables existantes de PostgreSql à partir de VFP9.

tables Postgresql :

1- table1 (idtable1 Int, Ctable1 Char(20)) ; idtable1 clé primaire auto incrémentée
2- table2 (idtable2 Int, idtable2fk int, ctable2 Char(20)) ; idtable2 clé primaire auto incrémentée , idtable2fk clé étrangère sur table1.idtable1.
3 - vtable1 vue sur la table1 et vtable2 vue sur la table2


dans la fenêtre 'commande' de VFP9 :

connexion avec la base de donnée de postgresql établie => nhandle = 1

1° écriture :

lvalue = "insert into vtable1 (ctable1) values ('valeurTab1')
sqlexec(nhandle,lvalue)
lvalue = "select * from table1"
sqlexec(nhandle,lvalue)

[/VFP]

je récupère le résultat de ma requête dans la fenêtre 'Session de données'

sqlresult => 1 ligne = 1,valeurtab1

-Question : Est ce que je peux nommer ma requête dans 'lvalue'?

2° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => sqlresult = 1,1,valeurtab2


3° écriture :

[VFP]

lvalue = "select * from vtable1"
sqlexec(nhandle,lvalue)
nvar = sqlresult.idtable1

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (?nvar, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => 2,1,valeurtab2


4° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (select idtable1 from vtable1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Pas de résultat !!! Erreur dans la 1° lvalue.
Je n'arrive pas à la détecter.

Merci pour toute aide et bonne journée.

Alain



Mon, 13 Jan 2020 00:29:38 GMT

Re: SQL et PostgreSql
Bonjour,

[VFP]
LOCAL iReturn AS INTEGER, cValue AS STRING, cCurseur AS STRING

cValue = [INSERT INTO table1 (cTable1) VALUES ('Ma chaine de texte')]
iReturn = SQLEXEC(m.nHandle, m.cValue)
IF m.iReturn > 0
=MESSAGEBOX('Ecriture réussie')
cValue = [SELECT * FROM table1]
cCurseur = 'c_sql'
USE IN SELECT(m.cCurseur) && fermeture du curseur si déjà ouvert
iReturn = SQLEXEC(m.nHandle, m.cValue, m.cCurseur)
IF m.iReturn > 0 AND USED(m.cCurseur)
SELECT m.cCurseur
BROWSE
ELSE
=MESSAGEBOX('Requête SELECT SQL non réalisée ou erronée..)
ENDIF
ELSE
=MESSAGEBOX('Requête INSERT SQL non réalisée ou erronée..)
ENDIF
[/VFP]

Ce code fonctionne directement sur les tables POSTGRESQL. Si 'vTable1' et 'vTable2' sont des vues distantes VFP de Table1 et Table2 alors l'utilisation de SQLEXEC est inutile, un simple TABLEUPDATE() suffira.

Cordialement
GLS


Mon, 13 Jan 2020 00:29:38 GMT

SQL et Postgresql bis
Bonjour,

Je veux mettre à jour des tables existantes de PostgreSql à partir de VFP9.

tables Postgresql :

1- table1 (idtable1 Int, Ctable1 Char(20)) ; idtable1 clé primaire auto incrémentée
2- table2 (idtable2 Int, idtable2fk int, ctable2 Char(20)) ; idtable2 clé primaire auto incrémentée , idtable2fk clé étrangère sur table1.idtable1.
3 - vtable1 vue sur la table1 et vtable2 vue sur la table2


dans la fenêtre 'commande' de VFP9 :

connexion avec la base de donnée de postgresql établie => nhandle = 1

1° écriture :

lvalue = "insert into vtable1 (ctable1) values ('valeurTab1')
sqlexec(nhandle,lvalue)
lvalue = "select * from table1"
sqlexec(nhandle,lvalue)

[/VFP]

je récupère le résultat de ma requête dans la fenêtre 'Session de données'

sqlresult => 1 ligne = 1,valeurtab1

-Question : Est ce que je peux nommer ma requête dans 'lvalue'?

2° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => sqlresult = 1,1,valeurtab2


3° écriture :

[VFP]

lvalue = "select * from vtable1"
sqlexec(nhandle,lvalue)
nvar = sqlresult.idtable1

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (?nvar, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Ok => 2,1,valeurtab2


4° écriture :

[VFP]

lvalue = "insert into vtable2 (idtable2fk,ctable2) values (select idtable1 from vtable1, 'valeurTab2')
sqlexec(nhandle,lvalue)
lvalue = "select * from table2"
sqlexec(nhandle,lvalue)

[/VFP]

Pas de résultat !!! Erreur dans la 1° lvalue.
Je n'arrive pas à la détecter.

Merci pour toute aide et bonne journée.

Alain



Mon, 13 Jan 2020 00:29:38 GMT

SQL et PostgreSql
Bonjour,

Je veux mettre à jour des tables existantes de PostgreSql à partir de VFP9.

tables Postgresql :

1- table1 (idtable1 Int, Ctable1 Char(20)) ; idtable1 clé primaire auto incrémentée
2- table2 (idtable2 Int, idtable2fk int, ctable2 Char(20)) ; idtable2 clé primaire auto incrémentée , idtable2fk clé étrangère sur table1.idtable1.
3 - vtable1 vue sur la table1 et vtable2 vue sur la table2


dans la fenêtre 'commande' de VFP9 :

connection avec la base de donnée de postgresql etablie => nhandle = 1

1° écriture :

[VFP]
lvalue = "insert into vtable1 (ctable1) values ('valeurTab1')
sqlexec(nhandle,lvalue)
lvalue = "select * from table1"
sqlexec(nhandle,lvalue)
[/VFP]
Mon, 13 Jan 2020 00:29:38 GMT

Re: utilisation fonction bas niveau
bonjour,
Merci pour ta réponse , j'essaie.

Bonne journée.

Alain


Fri, 10 Jan 2020 00:29:38 GMT

Re: utilisation fonction bas niveau
Bonjour
regardez l'utilisation de FILETOSTR() pour charger le contenu du fichier texte dans une variable VFP (moins de 16Mo) .
Concaténer le texte de première ligne avec la variable et réécrire le tout dans le fichier texte originel avec STRTOFILE().

Cordialement


Fri, 10 Jan 2020 00:29:38 GMT

utilisation fonction bas niveau
Bonjour et bonne année 2020,

Est il possible d'INSERER une ligne dans un fichier texte au début du fichier sans effacer l'ancien.

exemple:

debut de mon fichier.txt :

'Ecriture du debut du fichier........'

Insertion de : 'Caractère insérés '

le fichier devient :

'Caractères inserés Ecriture du debut du fichier.......'

Y a t'il une piste ?
Merci et bonne journée.

Alain



Fri, 10 Jan 2020 00:29:38 GMT

Re: Bloquer Un thread avec winexec ou shellexecute
Bonsoir Bernhart,

l'autre application est sous VFP ?


Jean à Grenoble
Wed, 08 Jan 2020 00:29:38 GMT

Bloquer Un thread avec winexec ou shellexecute
Bonjour,

dans une app VFP je dois lancer une autre application qui doit éxécuter une tache et se refermer.
on souhaiterait récupérer un fichier avant de poursuivre dans VFP .

Comment Bloquer le processus de cette application avant de continuer dans VFP ?


Merci d'avance pour vos aides.

Meilleurs voeux à tout le monde.

Bernhart


Sun, 05 Jan 2020 00:29:38 GMT

Re: Envoyer des SMS par foxpro
Bjr Kikoun. je suis à yamoussoukro en Côte d'Ivoire. je suis au 84 11 11 14 / pourrais tu prendre contact avec moi pour partage d'expérience stp?


Fri, 27 Dec 2019 00:29:38 GMT

Re: Google maps callculaltion
Mike,
Le service https://developers.google.com/maps/documentation/distance-matrix/start ne donne pas use precision. D autre part le service https://developers.google.com/places/web-service/autocomplete il y a une parameter 'offset' qui, apres Google: * The position, in the input term, of the last character that the service uses to match predictions.
* For example, if the input is 'Google' and the offset is 3, the service will match on 'Goo'.
* The string determined by the offset is matched against the first word in the input term only.
* For example, if the input term is 'Google abc' and the offset is 3, the service will attempt to match against 'Goo abc'.
* If no offset is supplied, the service will use the whole term. The offset should generally be set to the position of the text caret.
Il semble pour obetenir une correcte reponse on doit utiliser d;abort Autocomplete et en suite actualiser le distance-matric avec les chiffres coordonniates aux lieuw dúne texte.
Sls.
Koen



Sat, 21 Dec 2019 00:29:38 GMT

Re: Google maps callculaltion
Il faut aussi regarder le niveau de précision obtenu lors de la requête, Si tu fais une recherche sur MyStreet dans MyTown, les trois deniers chiffres des coordonnés GPS devrait etre 200 au moins. Si c'est plus que 200, tu perds de la précision (autrement dit le plus proche trouvé)



Sat, 21 Dec 2019 00:29:38 GMT

Re: Google maps callculaltion
Bonjour,

Après avoir consulté Google, il s'est avéré que cette functionalité estt conforme aux fonctionnalités de l'application. Pour y faire face, utilisez le "Autocomplete.app" https://developers.google.com/places/web-service/autocomplete,

Cordialement,

Koen


Tue, 17 Dec 2019 00:29:38 GMT

Google maps callculaltion
Bonjour,

Le calculateur de distance de Google Maps (merci Mike) n'est pas aussi intelligent qu'on le souhaiterait.
Si j'entre une mauvaise adresse, c'est-à-dire une rue myStreet qui n'existe pas dans myTown mais dans yourTown, je m'attendrais à ce que Google résume "Impossible de calculer la distance, l'adresse de départ est introuvable" ou quelque chose de similaire. Cependant, Google intelligent regarde autour de lui et trouve la ville la plus proche avec la rue demandée. Par conséquent, mauvaise distance sans aucune remarque. N'y a-t-il pas un paramètre qui empêche Google Maps de faire cela ou finalement accepte seulement si myStreet existe dans myTown et pas dans yourTown?

Cordialement,

Koen


Sun, 15 Dec 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Bonjour,
Vous pouvez peut être trouver la solution dans ce lien:

https://www.gerjon.com/citrix/xenappxendesktop/windows-2012r2-slow-and-slow-vfp-visual-foxpro-databases/

Le bas de la page me parait être une piste à creuser:
Disable Digitally sign communications (always)

When running Foxpro databases over the network you can experience poor performance. When disabling this settings the speed of copying files between server and workstation can increase dramatically. I've tested this (in a testenvironment on a domain controller) and difference in speed was obvious - even folder listings were visibly faster, and copying a 15 MB file from a share to a client desktop went from taking 20+ seconds to being almost instantaneous.

you can change these setttings via Group policy editor on the Windows 2012 R2 server

Open up Group Policy Editor, and right-click-and-edit Default Domain Controller Policy.
Go to Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Security Options,
and set Domain member: Digitally encrypt or sign secure channel data (always) and Microsoft network server: Digitally sign communications (always) to Disabled.

After changing the setting reboot the server just to be sure it works and test it thoroughly! Beware that this setting is changed for all domain members when it is changed in the default domain policy!

Worth noting: this problem is for Domain controllers and shouldn't be a problem on a non-domain-controller 2012 server. Beware on Windows Server Essentials 2012 these settings are also not set correctly! Full article can be found here: http://jrs-s.net/2013/04/15/windows-server-2012-slow-networksmbcifs-problem/

Disable "Secure Negotiate" on the Windows Server 2012

When running a Windows 2012 server and Windows 8 clients and and Foxpro applications run slow this can be caused by the "Secure Negotiate" feature that was added to SMB 3.0 for Windows Server 2012 and Windows 8. This feature depends upon the correct signing of error responses by all SMBv2 servers, including servers that support only protocol versions 2.0 and 2.1. Some third-party file servers do not return a signed error response. Therefore, the connection fails (intermittently).

you can disable this by running the following command on the Windows 2012 server and/or the Windows 8 clients:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecureNegotiate -Value 0 -Force

The full Microsoft KB article can be found here:: http://support.microsoft.com/kb/2686098

Cordialement
GLS


Tue, 10 Dec 2019 00:29:38 GMT

Re: Comment empêcher le changement de lignes dans une grille.
Grégory,

Au risque de me répéter...
Comme d'habitude solution Top

MERCI !


Wed, 04 Dec 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Merci pour vos réponses
Je vais essayer d'appliquer cela et je vous communiquerai le résultat

Salutations


Tue, 03 Dec 2019 00:29:38 GMT

Re: Comment empêcher le changement de lignes dans une grille.
Dans grid.BeforeRowColChange

[vfp]
LPARAMETERS nColIndex

if( bittest(m.this.RowColChange, 0) )
nodefault
endif
[/vfp]



Tue, 03 Dec 2019 00:29:38 GMT

Comment empêcher le changement de lignes dans une grille.
Bonjour,

Dans le lien ci dessus on a un formulaire avec une grille.

https://www.dropbox.com/s/qo8gpuf9lmfytp7/2019-12-02_20-48-02.jpg?dl=0

je souhaite empêcher le changement de lignes si une Condition n'est PAS remplie.

Valid() When() BeforeRowColChange() n'emp^che pas ceci.

Avez vous une facon de procéder ?

Merci d'avance



Mon, 02 Dec 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Merci pour ces précisions. j'espère que cela va aider.
Merci de nous faire un compte rendu afin que l'on sache si ces actions
résolvent le problème
Cordialement
Franck
Fri, 29 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
précision complémentaire :
pour les stations et " l'indexation des fichiers" : pareil sur le volume réseau des données de l'application : ça ne sert a rien d'indexer dans windows pour chaque station le contenu des données des data ... puisque que c'est du "binaire"...
et gain réseau si beaucoup de stations...

Le ven. 29 novembre 2019, 17h33 Francis Faure a écrit :
> Bonsoir,
>
> Ici pas de problème avec serveur 2012 R2
> si comme dit par Gilles plus haut : d'exclure les extensions VFP sur le serveur ET les postes : ou plus simplement le répertoire des DATA
>
> De + sur le serveur 2012R2 : déactiver l'indexation des fichiers Microsoft
> sur le disque des données : clique droit -> onglet général -> "décocher l'indexation du contenu des fichiers...", qui ne sert a rien sur un serveur...
>
> après si c'est des dysfonctionnements et non de simple "lenteurs" : voir couche SMB
>
> Cordialement
> Francis
>
>
> .
>



Fri, 29 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Bonsoir,

Ici pas de problème avec serveur 2012 R2
si comme dit par Gilles plus haut : d'exclure les extensions VFP sur le serveur ET les postes : ou plus simplement le répertoire des DATA

De + sur le serveur 2012R2 : déactiver l'indexation des fichiers Microsoft
sur le disque des données : clique droit -> onglet général -> "décocher l'indexation du contenu des fichiers...", qui ne sert a rien sur un serveur...

après si c'est des dysfonctionnements et non de simple "lenteurs" : voir couche SMB

Cordialement
Francis


Fri, 29 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Le 29/11/2019 à 11:18, hmoslih a écrit :
> Pas de Solution ?
>
>

Hélas non pour ce cas de figure. il faut revenir à un serveur 2003 ou à
des postes sous XP.
La lenteur n'est rien, selon le trafic, des index vont s'endommager,
voire des tables.

2 voies:
- Exécuter l'application en REMOTE sur le serveur pour s'affranchir du
réseau
- Ré-ecrire l'application avec une base de données SQL
Fri, 29 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Pas de Solution ?


Fri, 29 Nov 2019 00:29:38 GMT

Re: Envoyer des SMS par foxpro
Tu peux aussi utiliser Outlook (pas besoin de modem)

http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000734


Tue, 26 Nov 2019 00:29:38 GMT

Re: Envoyer des SMS par foxpro
Cette ligne represente le numéro du téléphone

thisform.comm1.output='AT+CMGS="'+'0022502502258'+'"'+chr(13)



Tue, 26 Nov 2019 00:29:38 GMT

Re: TEXT TO - Conversion des "un"
Bonjour Vincent,

Ce n'était donc pas Attila qui a été stoppé à Châlon ;-)

- Ce pourrait être une question lors d'un prochain "quizz" aux rencontres Atoutfox ^^

Cordialement
Francis


Le mar. 26 novembre 2019, 08h06 vh a écrit :
> Bonjour Francis,
>
> Mais c'est bien sûr ... J'avais un vieux #DEFINE un qui traînait.
>
> C'était histoire de réveiller le forum :-;
>
> Merci pour ta réactivité, toujours très appréciée.
>
> Bonne journée.
>
> Bien cordialement,
>
> Vincent



Tue, 26 Nov 2019 00:29:38 GMT

Re: TEXT TO - Conversion des "un"
Bonjour Francis,

Mais c'est bien sûr ... J'avais un vieux #DEFINE un qui traînait.

C'était histoire de réveiller le forum :-;

Merci pour ta réactivité, toujours très appréciée.

Bonne journée.

Bien cordialement,

Vincent


Tue, 26 Nov 2019 00:29:38 GMT

Re: Envoyer des SMS par foxpro
Bonjour,
je ne sais pas si les modems RTC peuvent toujours envoyer des SMS et si ceux-ci sont encore compatibles (les SMS envoyés) avec les technologies actuelles, mais il semble d'après le site ci après qu'il manque des commandes HAYES après l'output du message:

http://www.ordinateur.cc/r%C3%A9seaux/modems/74979.html

output = 'mon message' + '+ CMGW : 1' + CHR(13) && indique zone mémoire dans le modem ou est stocké le message
output = 'AT + CMSS = 1' + CHR(13) && faire émettre par le modem la zone mémoire N° 1

Peut-être cela permettra de résoudre la situation ?

Sinon, il plus facile d'utiliser un Tiers extérieur (payant) pour effectuer l'émission de SMS souvent par communication en HTTP ou par email avec une structure particulière ww.lesms.com par exemple)

Cordialement
GLS


Tue, 26 Nov 2019 00:29:38 GMT

Envoyer des SMS par foxpro
Bonjour à tous
Je dois envoyer des SMS automatique à des fournisseurs.
Mon soucis se trouve au niveau de l'envoi. Je me suis inspiré de la contribution de Mike GAGNON
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000458
Il me marque que le message est parti mais je ne recois pas de message chez le destinataire.
Voici mes codes.

Dans Init du formulaire :

thisform.Comm1.CommPort = 3 &&"Le port qui communique au modem"
thisform.Comm1.Handshaking = 0
thisform.Comm1.RThreshold = 0
thisform.Comm1.RTSEnable = .f.
thisform.Comm1.Settings = "9600,n,8,1"
thisform.Comm1.SThreshold = 0
thisform.Comm1.InputMode = 0
thisform.comm1.portOpen = .T.


Dans l'evenement Click du bouton :

thisform.comm1.output="ATE1"+chr(13)
thisform.comm1.inbuffercount=0
wait 'Sending . . .' window TIMEOUT 0.2
thisform.comm1.output='AT+CMGF=1'+chr(13)
wait 'Sending . . .' window TIMEOUT 0.2
thisform.comm1.output='AT+CMGS="'+'0022502502258'+'"'+chr(13)
wait 'Sending . . .' window TIMEOUT 0.2
thisform.comm1.output=[message à envoyer]+chr(26)
wait 'Envoi . . .' window TIMEOUT 5
wait 'Message parti!' window


Mon appareil GSM Modem a le port COM3, avec la configuration 9600,n,8,1.

Cordialement.


Tue, 26 Nov 2019 00:29:38 GMT

Re: Aide à consommer un web service avec Visual studio
Bonsoir,

Je n'ai pas compris :

a - si tu cherche simplement à consommer un web service qui existe,
(Cela tu peux le faire simplement en VFP)

b - ou si tu cherche a développeur le serveur webservice en dotnet

Cordialement

Francis

Le mar. 05 novembre 2019, 15h18 MILCENT Bernhart a écrit :
> Bonjour à tous,
>
> je cherche une aide ( qui sera gratifiée ) pour L'implémentation d'un projet dotnet ( visual studio ) et créér une Dll.
> Ensuite, cette dll serait exploitée à l'intérieur d'un programme VFP 9.
>
> Qui peut m'aider à réaliser ce projet ?
>
> http://www.Amline.be/Amline/3ImplementationGuide_For_CareProvider.pdf
>
> support@amline.be
>
> Cordialement




Mon, 25 Nov 2019 00:29:38 GMT

Re: TEXT TO - Conversion des "un"
Bonsoir Vincent,

hihi, J'ai bien rigolé en voyant ta question, on est pourtant pas le "un" Avril,
ou alors c'est une blague de "Attila" ;-)

Plaisanterie mise à part,

Il y a forcement quelque chose plus faut dans ton code provoquant cela,

a) je mise sur le fait sur tu aurais
[VFP]
#define un 1
[/VFP]

b) as tu changé tes options
SET TEXTMERGE DELIMITERS avec des espaces par exemple et que tu aurais un variable "un" définie avant ?

c) as tu le même comportement avec un SET TEXTMERGE OFF ? sir oui alors c'est §a ?

enfin ce n'est pas un "bug" puis si tu prends ton code dans un prg de test : cela fonctionne bien normalement...

Cordialement
Francis


Le lun. 25 novembre 2019, 18h18 vh a écrit :
> Bonjour à tous,
>
> Je suis confronté à un étrange résultat:
>
> [vfp]
> TEXT TO C_Texte TEXTMERGE NOSHOW
> Pour un document
> ENDTEXT
> [/vfp]
>
> Me renvoie systématiquement "Pour 1 document"
>
> Je peux bien-sûr modifier C_Texte en sortie mais est-ce un bug ou existe t-il une désactivation possible de cette conversion automatique ?
>
> Merci d'avance pour vos lumières.
>
> Vincent



Mon, 25 Nov 2019 00:29:38 GMT

TEXT TO - Conversion des "un"
Bonjour à tous,

Je suis confronté à un étrange résultat:

[vfp]
TEXT TO C_Texte TEXTMERGE NOSHOW
Pour un document
ENDTEXT
[/vfp]

Me renvoie systématiquement "Pour 1 document"

Je peux bien-sûr modifier C_Texte en sortie mais est-ce un bug ou existe t-il une désactivation possible de cette conversion automatique ?

Merci d'avance pour vos lumières.

Vincent


Mon, 25 Nov 2019 00:29:38 GMT

Re: port RS232
Bonjour,

D'où proviennent les fonctions SioRest(), SioPuts, etc..
Ce ne sont pas des procédures natives de VFP..

Cordialement
GLS


Mon, 25 Nov 2019 00:29:38 GMT

Re: port RS232
Merci pour vos réponses qui m'ont été très utiles et constructives


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
Merci pour vos réponses qui m'ont été très utiles et constructives


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
Send command to RS232 serial device

Function SendCommand(Port, Baud, Command)
Local Kode
Local Buffer
* reset (open) the port
Kode = SioReset(Port, 1024, 1024)
* error ? (negative return codes are errors)
if Kode < 0
return Kode
endif
SioBaud(Port, Baud)
* send string
Kode = SioPuts(Port, @Command, Len(Command))
if Kode < 0
return Kode
endif
* wait up to 500 mSec for a response
Kode = SioWaitFor(Port, 500)
if Kode < 0
return Kode
endif
* allow time for entire response (depends on serial device)
Kode = SioSleep(250)
* display response
Buffer = SPACE(256)
Kode = SioGets(Port, @Buffer, 255)
if Kode > 0
? Left(Buffer, Kode)
endif
return Kode


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
Bonjour,

Il suffit d'utiliser un des active x de Microsoft accessible et à utiliser directement dans un form VFP. (MSCOMM)
- Ajout objet VFP OLE , sélectionner Microsoft communication control version 6.0)
- un fois présent dans le formulaire VFP, il s'affiche sous forme d'un téléphone jaune posé sur un modem avec des voyants rouges et verts)
Dans cet objet OLE, depuis les propriétés suivantes sont à indiquer:.

ole.DTRenable = .F. && pas d'utilisation du DTR lors de communications sauf si le périphérique oblige son utilisation
ole.Commport = N° du port com RS232c à utiliser
ole.RTreshold = 1 && dès qu'un caractère est entré l'évènement This.OnComm() est déclenché
ole.InputMode = 0 && texte
ole.STreshold = 1 && émission dès le premier caractère écrit dans le port comm
ole.Settings = 9600,n,8,1 && vitesse de transmission prévu pour cette liaison RS232c

Utiliser l'évènement ole.OnComm() pour traiter les caractères entrants
Utiliser la propriété ole.OUPUT = 'la chaine de caractère à envoyer vers le périphérique'
Utiliser la propriété ole.InBufferCount > 0 && si le buffer de réception à au moins un caractère de réceptionné
Utiliser la propriété ole.input pour forcer la lecture de caractère, si l'on ne souhaite pas utiliser l'évènement ole.Oncomm() pour traiter la réception de caractères
Utiliser la propriété ole.CommEvent = 2 && pour tester si des caractères sont en cours de réceptions par l'UART du RS232C

Dans l'évènement OnComm()
L'évènement OnComm() de l'OLE pouvant se déclencher pendant une écriture dans le port RS232c par une méthode du formulaire, il faut penser à bloquer l'utilisation du port série en écriture tant qu'il est en réception

[VFP]
PROCEDURE OnComm
* ICI indiquer que le port RS232c est utilisé en lecture par exemple THISFORM.lReception = .T. mettre une propriété du formulaire à .T.
* Utiliser ole.input pour lire le port
IF m.THIS.CommEvent = 2 && Réception effective
IF m.THIS.InBufferCount > 0 && au moins un caractère de lu
cMaChaine = m.THIS.INPUT
i = 0
* Exemple de traitement de la chaine réceptionné avec un aquittement sur une fin de transmission
DO WHILE LEN(m.cMaChaine) > 0 AND ASC(SUBSTR(m.cMaChaine, m.i, 1)) <> 0
DO CASE
CASE SUBSTR(m.cMaChaine, m.i, 1) = CHR(04) && traitement cas du caractère 04 reçu EOT fin de transmission
THIS.OUPUT = CHR(06) && émission d'un caractère ACK
ENDCASE
i = m.i + 1
DOEVENTS && libère les ressources machine pour d'autres applications
ENDDO
ENDIF
ENDIF
* ICI indiquer que le port est libre en émission THISFORM.lReception = .F.
ENDPROC

[/VFP]

* Pour émettre il suffit d'utiliser ole.OUPUT = 'la chaine à écrire'
Cordialement
GLS


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
Bonjour,

Il suffit d'utiliser un des active x de Microsoft accessible et à utiliser directement dans un form VFP. (MSCOMM)
- Ajout objet VFP OLE , sélectionner Microsoft communication control version 6.0)
- un fois présent dans le formulaire VFP, il s'affiche sous forme d'un téléphone jaune posé sur un modem avec des voyants rouges et verts)
Dans cet objet OLE, depuis les propriétés suivantes sont à indiquer:.

ole.DTRenable = .F. && pas d'utilisation du DTR lors de communications sauf si le périphérique oblige son utilisation
ole.Commport = N° du port com RS232c à utiliser
ole.RTreshold = 1 && dès qu'un caractère est entré l'évènement This.OnComm() est déclenché
ole.InputMode = 0 && texte
ole.STreshold = 1 && émission dès le premier caractère écrit dans le port comm
ole.Settings = 9600,n,8,1 && vitesse de transmission prévu pour cette liaison RS232c

Utiliser l'évènement ole.OnComm() pour traiter les caractères entrants
Utiliser la propriété ole.OUPUT = 'la chaine de caractère à envoyer vers le périphérique'
Utiliser la propriété ole.InBufferCount > 0 && si le buffer de réception à au moins un caractère de réceptionné
Utiliser la propriété ole.input pour forcer la lecture de caractère, si l'on ne souhaite pas utiliser l'évènement ole.Oncomm() pour traiter la réception de caractères
Utiliser la propriété ole.CommEvent = 2 && pour tester si des caractères sont en cours de réceptions par l'UART du RS232C

Dans l'évènement OnComm()
L'évènement OnComm() de l'OLE pouvant se déclencher pendant une écriture dans le port RS232c par une méthode du formulaire, il faut penser à bloquer l'utilisation du port série en écriture tant qu'il est en réception
[VFP]
PROCEDURE OnComm
* ICI indiquer que le port RS232c est utilisé en lecture par exemple THISFORM.lReception = .T. mettre une propriété du formulaire à .T.
* Utiliser ole.input pour lire le port
IF m.THIS.CommEvent = 2 && Réception effective
IF m.THIS.InBufferCount > 0 && au moins un caractère de lu
cMaChaine = m.THIS.INPUT
i = 0
* Exemple de traitement de la chaine réceptionné avec un aquittement sur une fin de transmission
DO WHILE LEN(m.cMaChaine) > 0 AND ASC(SUBSTR(m.cMaChaine, m.i, 1)) <> 0
DO CASE
CASE SUBSTR(m.cMaChaine, m.i, 1) = CHR(04) && traitement cas du caractère 04 reçu EOT fin de transmission
THIS.OUPUT = CHR(06) && émission d'un caractère ACK
ENDCASE
i = m.i + 1
DOEVENTS && libère les ressources machine pour d'autres applications
ENDDO
ENDIF
ENDIF
* ICI indiquer que le port est libre en émission THISFORM.lReception = .F.
ENDPROC
[/VFP]

* Pour émettre il suffit d'utiliser ole.OUPUT = 'la chaine à écrire'

Cordialement
GLS


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
L'activex s'appele Microsoft Communication control.


Sun, 24 Nov 2019 00:29:38 GMT

Re: port RS232
https://www.foxite.com/archives/mscomm-receive-data-problem-eric-0000019592.htm


Sun, 24 Nov 2019 00:29:38 GMT

port RS232
Bonjour
Je suis à la recherche d'un code qui pourra m'aider à m'initier :
1- à me connecter à un port RS232
2- à lire les informations venant de ce port

Merci


Sat, 23 Nov 2019 00:29:38 GMT

Re: lecteur reseau
Bonjour,

Regardes dans les contributions 05-API et/ou 09-Automation, tu devrais trouver ce que tu cherches.
JP


Thu, 07 Nov 2019 00:29:38 GMT

lecteur reseau
Bonsoir

j'aimerais sauvegarder des fichiers sur un lecteur
exemple \\192.168.9.9\test
ou ce lecteur me demande un login et un Mdp (que je connais bien sur)
Donc ma question et comment envoyer ce login et Mdp pour entrer dans le lecteur et sauvegarder mes fichiers

D'avance merci de votre aide



Thu, 07 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Bonjour,

J'ai une seule application sur le serveur (exécutable lancer à travers le réseau) et l'application marche depuis 20 ans sans problème.
le problème de lenteur apparaît seulement dans Windows 2012 R2 et plus et aléatoire c'est à dire je peux ouvrir une liste a moins d'une seconde, la même liste peut être ouverte en 20 secondes

Salutations


Tue, 05 Nov 2019 00:29:38 GMT

Aide à consommer un web service avec Visual studio
Bonjour à tous,

je cherche une aide ( qui sera gratifiée ) pour L'implémentation d'un projet dotnet ( visual studio ) et créér une Dll.
Ensuite, cette dll serait exploitée à l'intérieur d'un programme VFP 9.

Qui peut m'aider à réaliser ce projet ?

http://www.Amline.be/Amline/3ImplementationGuide_For_CareProvider.pdf

support@amline.be

Cordialement


Tue, 05 Nov 2019 00:29:38 GMT

Re=3a mes adieux vous tous et tout particulierement à
Bonjour Eddy,
excuses moi de te répondre aussi tard mais j'étais en vacances forcées (je
travaille pour la SNCF (!!!!) et ils ont voulu déménager les vieux ordinateurs
sur lequel je travaille (des VAXs !) de Lyon à Lille).

Je ne sais pas si un jour je prendrai une vraie retraite parce que
l'informatique reste une passion; mais réduire l'activité, surement. ce qui me
permettrait de faire de grands voyages ... ferroviaires et pourquoi pas sur les
CN ou les CP (et l'AMTRAK, ...)

J'espère que tu vas rester en contact avec nous pour que l'on ait des nouvelles
du Canada !

En tout cas profites bien de ton temps libre !

Bonne journée
Jean à Grenoble
Sun, 03 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
also experiencing the same problems


Sat, 02 Nov 2019 00:29:38 GMT

Re=3a mes adieux vous tous et tout particulierement à
Salut Eddy,

Merci pour tes remerciements, il y a une époque ou nous avons bien
échangé, appris et monté en compétence foxpro, le plaisir est partagé.

Je n'ai pas bien compris, tu prends ta retraite ?

De mon coté, je gère un réseau immobilier, tu pourras me retrouver aussi
sur les réseaux sociaux .

https://www.youtube.com/watch?v=pUrCclC6klg

Et tous mes liens pour me joindre ici : http://www.olivierhamou.com

De mon coté, je continue toujours à développer 99% .Net et 1% en Foxpro


@ très bientôt, au plaisir de te rencontrer en IRL.

Olivier,


Le 15/10/2019 à 05:36, eddymaue a écrit :
> Francis
> Mike aux savoirs infinis
> Gregory bon on ce déteste mais tu m'as beaucoup aidé... ça c'est apprécié
> Jean de Grenoble
> Thierry
> Gilles
> et bien d'autres ....
>
> à Eric sur ce news avec qui j'entretiens tout de mème une communication sympathique via Facebook
>
> Et tout particulièrement à Olivier Hamou
>
> Je considère important de souligner que j'ai partagé de beaux échanges avec vous mes viens un moments ou
> je considère que je ne suis plus vraiment présent ici... bref la vie continue
>
> je me suis remit au c/c++, java et node-red pour contrôler l'environnement de ma serre... température, humidité, humidité de la terre de chaque bassin ... bref un plaisir sublime pour ma retraite
>
> bonne chance à tous et aux oubliés ... désolé la mémoire me fait défaut
>
>
>
>
Fri, 01 Nov 2019 00:29:38 GMT

Re: VFP et Windows server 2012 R2
Bonjour,

Avez-vous pensé à vérifier les exclusions des fichiers utilisés par vos applications VFP des anti-virus de vos machines ?
Vos postes de travail utilisent-ils une base de données et des tables partagées sur le serveur avec un exécutable VFP ses dossiers temporaires, etc.. sur le poste de travail ? ou utilisent-ils une seule application sur le serveur (exécutable lancer à travers le réseau) ?

Ce qu'il y a de plus efficace pour s'affranchir des problèmes de lenteurs réseaux, c'est de gérer les fichiers temporaires de VFP pour permettre une utilisation mutli-postes en bureau à distance.
Comme cela tous les PC clients sont simplement connectés au serveur par TSE et donc toute l'application s'exécute sur le serveur pour tous les postes clients.

Cordialement
GLS


Thu, 31 Oct 2019 00:29:38 GMT

VFP et Windows server 2012 R2
Bonjour,

Est ce qu'il y a une solution pour la lenteur d'exécution des applications Foxpro dans Windows Server 2012R2

J'ai déjà désactivé SMB2 et SMB3 dans le serveur et les postes de travail mais sans changement

Salutations


Wed, 30 Oct 2019 00:29:38 GMT

Reproduction totale ou partielle strictement interdite • Propulsé par KitWeb • Hébergement Wan AgainValid XHTML 1.0 Transitional