Question : Bases de données d'accès multiple de mise à jour d'AGITATION/erreur avec la valeur nulle de date

Salut All

Have un problème avec mettre à jour un DB synchronisé d'accès, quand une date est non réprimée d'une récolteuse de date dans une application de formes de VB6 Windows. En outre ce des travaux de processus très bien avec toutes autres mises à jour de champ sauf là où les dates sont Empty.

When une valeur NULLE est passés dans (date changée d'une certaine date en rien) les rs. La mise à jour ne fait rien à la valeur dans le deuxième DB.

If que j'essaye d'emprisonner la valeur et la mettre à jour à une corde vide ou à autre j'obtiens le class= suivant le " underline " >ADODB.Field
Description d'error.


And si je déclare une variable pour attraper le type d'adoDB.field, j'obtiens le >Description de " underline " de class= du


This est vieux code d'un réalisateur précédent et pour être honnête je lutte pour comprendre que la meilleure manière de fixer it.

I ont attaché le code ci-dessous et des commentaires supplémentaires aux secteurs appropriés. Le problème se pose spécifiquement avec field.type (7) c.-à-d. « adDate ». le

d'ailleurs la définition de champ dans le Tableau d'accès est placé à « Required = pas ». pour cet EndDate Field.

My le sentiment d'intestin est moi doit retourner à une certaine forme de commande SQL De « mise à jour » ou supprimer même la rangée du DB d'External et réinsérer juste le disque si un changement est made.

I ont passé beaucoup d'heures essayant de dépister la meilleure manière de traiter ceci ainsi n'importe quelle aide seraient appreciated.

Cheers FLOG51

class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
updateExternalDB " de " codeSnippet960726 d'id= " de
Private de class= (auditId de ByVal comme externalDB de corde, de ByVal comme adoUtil, tablename de ByVal comme clef de corde, de ByVal comme oldKey de corde, de ByVal comme corde) comme corde
    Sur le résumé d'erreur après
    Faible errorStr comme corde
    Faible searchKey comme corde

	Faible parentRS comme objet
	le 'gDBUtility est déclaré en tant que global et la routine de .getParentRSA recherche avec succès des données de champ du Tableau de base de données de parent
	'Ceci est effectué après que le Tableau de parent ait été avec succès mis à jour avec des valeurs vides pendant les dates appropriées.
	Placer le parentRS = le gDBUtility.getParentRSA (« choisir » et gDBUtility.getMyTableExportFields et « de myTable où cardnumber = » et clef)

	Sinon le parentRS n'est rien alors
	  Si parentRS.EOF = faux puis
	    Si errorStr = puis ""
	      Faible externalparentRS comme objet					
	      Placer l'externalparentRS = l'externalDB.getParentRSA (« choisir * à partir » et tablename et « où cardnumber = » et clef, vraie)
	        Si l'externalparentRS n'est rien alors
		      Placer l'externalparentRS = l'externalDB.getParentRSA (tablename, vrais, vrais)
		      externalparentRS.addNew
	        Autrement
		      Si externalparentRS.EOF alors
			    externalparentRS.addNew
		      Finir si
	        Finir si
	
	          Obscurcir f comme adoDB.field
	          Obscurcir le fieldname comme corde
	          Pour chaque f dans parentRS.fields
		        fieldname = f.name				
		        Sinon IsNull (parentRS.fields (fieldname)) Puis
			      Si "" de <> de parentRS.fields (fieldname) alors
			        'Cette ligne ci-dessous est où la valeur NULLE de date est passée et jamais des entrées à externalparentRS.Update 
				     externalparentRS.fields (fieldname) = parentRS.fields (fieldname)
				    Si errer. Numéroter le <> 0 alors
					  'Debug.Print « a échoué :  » et err.description
				    Finir si
			      Finir si
		        Finir si
	          Après
	          externalparentRS.Update
	          Si errer. Numéroter le <> 0 alors
		        updateExternalDB = err.description
	          Finir si
	    Autrement
	      updateExternalDB = errorStr
	    Finir si
	  Finir si
	Finir si
	parentRS.Close
	Placer le parentRS = rien
Finir la fonction
class= de

Réponse : Bases de données d'accès multiple de mise à jour d'AGITATION/erreur avec la valeur nulle de date

               Pour chaque f dans parentRS.fields 'réitérer par chaque champ dans le recordset de parentRS
                    le fieldname = les f.name 'assignent le nom du champ courant à une variable de corde

'voici où j'obtiens confus
            
                    Sinon IsNull (parentRS.fields (fieldname)) Alors 'procéder seulement si la valeur du champ courant n'est pas NULLE
                        Si le "" de parentRS.fields (fieldname <> ) alors 'procèdent seulement si la valeur du champ courant n'est pas UNE CORDE VIDE

'comment nous obtiennent ici si une valeur nulle est passée ? ? ? ?  Les conditionals ci-dessus devraient empêcher ceci

                          'Cette ligne ci-dessous est où la valeur NULLE de date est passée et jamais des entrées à externalRS.Update
                             externalRS.fields (fieldname) = parentRS.fields (fieldname)           'si nous obtenons placions ici alors la valeur du champ de recordset d'externalRS à la même valeur que le champ de parentRS
                            Si errer. Numéro <> 0 alors
                                'Debug.Print « a échoué :  » et err.description
                            Finir si
                        Finir si
                    Finir si
                Après
                mise à jour d'externalRS.Update 'le recordset
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us