Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : .NET » select sur une vue via npgsql » 29/08/2019 21:10:53
Arf. Évidemment.
Voilà ce qui arrive quand on a le C# avec sa normalisation de noms de variables sur un écran et PostgreSQL avec une autre normalisation sur l'autre écran.
Je vais renommer les vues avec une casse pour respecter la normalisation PostgreSQL.
Merci de m'avoir fait remarquer ce que j'avais collé devant le nez et que je ne voyais pas.
#2 .NET » select sur une vue via npgsql » 29/08/2019 15:50:10
- Jean-Marc68
- Réponses : 2
Salut,
Je code en C# et je me lie à postgresql via npgsql (à jour, version 4.0.9).
Je n'ai aucun problème à accéder aux tables, mais lorsque je crée une vue et que je veux la lire, je reçois un message d'erreur me disant que la table n'existe pas (erreur 42P01)
Voici une vue dans postgresql
CREATE OR REPLACE VIEW public."OCTRencodees" AS
SELECT documents.num_document_cadastre AS no_octr,
documents.minute,
documents.date_minute,
documents.ag,
documents.matricule_ag
FROM documents
WHERE documents.type_document::text = 'OCTR'::text
GROUP BY documents.num_document_cadastre, documents.minute, documents.date_minute, documents.ag, documents.matricule_ag
ORDER BY documents.num_document_cadastre;
ALTER TABLE public."OCTRencodees"
OWNER TO jmdeneyer;
COMMENT ON VIEW public."OCTRencodees"
IS 'Donne la liste des OCTR encodées';
Voici le code de lecture de cette vue
public static MTObservableCollection<MinuteDocument> ListeOCTRencodés()
{
NpgsqlConnection conn = new NpgsqlConnection(Properties.Settings.Default.PostGISconnexionString);
MTObservableCollection<MinuteDocument> listeOCTR = new MTObservableCollection<MinuteDocument>();
string listeOCTRencodéssql = @"SELECT * FROM OCTRencodees;";
NpgsqlCommand listeOCTRencodéscommand = new NpgsqlCommand(listeOCTRencodéssql, conn);
NpgsqlDataReader listeOCTRencodésdr;
try
{
conn.Open();
using (listeOCTRencodésdr = listeOCTRencodéscommand.ExecuteReader())
{
while (listeOCTRencodésdr.Read())
{
MinuteDocument octr = new MinuteDocument();
int noMandat = 0, noMatricule = 0;
DateTime dateMinute = new DateTime();
if (int.TryParse(listeOCTRencodésdr["no_octr"].ToString(), out noMandat))
octr.Numero = noMandat;
if (int.TryParse(listeOCTRencodésdr["matricule_ag"].ToString(), out noMatricule))
octr.Matricule = noMatricule;
if (DateTime.TryParse(listeOCTRencodésdr["date_minute"].ToString(), out dateMinute))
octr.DateMinute = dateMinute;
octr.Minute = listeOCTRencodésdr["minute"].ToString();
octr.AG = listeOCTRencodésdr["ag"].ToString();
listeOCTR.Add(octr);
}
}
}
catch (Exception ex)
{
throw new Exception("la lecture des OCTR encodées a engendré l'erreur suivante.Message : " + ex.Message, ex);
}
finally
{
conn.Close();
}
if (listeOCTR.Count > 0)
return listeOCTR;
return null;
}
Voici le message que je reçois
System.Exception
HResult=0x80131500
Message=la lecture des OCTR encodées a engendré l'erreur suivante.Message : ERREUR: 42P01: la relation « octrencodees » n'existe pas
Source=TopocomArchives
Exception interne 1 :
NpgsqlException : ERREUR: 42P01: la relation « octrencodees » n'existe pas
Qu'est-ce que je fais mal ?
Que dois-je faire pour avoir accès aux vues ?
Merci de vos z'avis z'avisés.
#3 Re : PL/pgSQL » SQL pour itération de fonction avec le contenu d'un champs en argument » 23/08/2019 19:21:57
Je pensais qu'il y avait moyen de le faire sans passer par une autre fonction.
Je vais essayer cela.
Merci.
#4 PL/pgSQL » SQL pour itération de fonction avec le contenu d'un champs en argument » 23/08/2019 15:17:28
- Jean-Marc68
- Réponses : 7
Salut,
J'ai fais une fonction update "desactiver_couverts(numero_document integer)" qui prend un nombre en argument.
Maintenant que ma fonction fonctionne, je dois la faire fonctionner avec tous les nombres (dans l'ordre croissant de ces nombres, c'est important) contenus dans une colonne.
Le problème est que je ne sais pas (et je n'arrive pas en fonction de ce que j'ai trouvé) à faire l'itération qui va me permettre de rouler la fonction avec les nombres de la colonne en ordre ascendant.
Quelqu'un aurait-il un exemple de SQL à me montrer qui reprendrait un champs pour alimenter une fonction ?
Merci de vos z'avis z'avisés.
Pages : 1