Lire et écrire dans une base de données access à l'aide de Javascript
d'abord je tiens à préciser que je suis conscient que, dans le web, l'interaction avec les bases de données
toujours être à côté serveur langues pour des raisons de sécurité et pour le fait que javascript
comme n'offre pas et la compatibilité avec le système de fichiers windows.
cela dit, je suis confronté à un bien de la situation et je suis en train de penser de façon créative.
Je ne suis pas autorisé à accéder à un serveur verso de script et de SQL.
et j'ai besoin de créer un client en fonction de l'application pour un intranet qui sera capable de stocker des données comme le temps de progrès.
J'ai trouvé 2 solutions jusqu'à présent, mais aucun d'eux n'a assez de documentation pour moi de l'utiliser correctement.
est une bibliothèque javascript appelé ACCESSdb qui peut être trouvé ici:ACCESSdb
malheureusement, je n'arrivais pas à comprendre comment l'utiliser pour écrire ou lire des données à partir de la DB...
et l'autre de ces 3 morceaux de code:
L'ajout d'un Enregistrement:
function AddRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='/\dbName.mdb'");
adoRS.Open("Select * From tblName", adoConn, 1, 3);
adoRS.AddNew;
adoRS.Fields("FieldName").value = "Quentin";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
La suppression d'un Enregistrement:
function DeleteRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Delete;
adoRS.Delete;
adoRS.Close();
adoConn.Close();
}
La modification d'un Enregistrement:
function EditRecord() {
var adoConn = new ActiveXObject("ADODB.Connection");
var adoRS = new ActiveXObject("ADODB.Recordset");
adoConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\dbName.mdb'");
adoRS.Open("Select * From tblName Where FieldName = 'Quentin'", adoConn, 1, 3);
adoRS.Edit;
adoRS.Fields("FieldName").value = "New Name";
adoRS.Update;
adoRS.Close();
adoConn.Close();
}
sortent seulement la ajouter un nouvel enregistrement a travaillé pour moi pour une raison...
j'ai également découvert que la lecture de la valeur de n'importe quelle cellule dans la première ligne, tout ce que j'avais à faire était d'écrire:
alert(adoRS(cellNum));
mais comment puis-je obtenir la valeur de cellules dans les dernières lignes? permet de dire (ligne 3,cellule 5).
Je vous remercie pour la lecture de ce jour! Je vous remercie de votre aide beaucoup!
Jake
adoRS.Delete
à adoRS.Delete()
, adoRS.Edit
à adoRS.Edit()
et adoRS.Update
à adoRS.Update()
. Vous devez utiliser un ms-access db(c'est sur un partage réseau ou quelque chose)?Merci, je vais essayer vos suggestions. oui, il sera assis sur un lecteur réseau. aussi savez-vous comment je peux extraire des valeurs de cellules dans les lignes plus bas puis le premier?
Avez-vous essayé
adoRS.moveNext()
? msdn.microsoft.com/en-us/library/windows/desktop/...Merci il ne me faire à l'enregistrement suivant. 🙂 savez-vous si une façon de l'obtenir directement à la 50e enregistrement sans boucle, le adoRS.moveNext() 50 fois? comme permet de dire adoRS.moveNext(50) ou quelque chose comme ça...
aussi, j'ai juste essayé la adoRS.Effacez() et cela a fonctionné parfaitement. merci beaucoup Prusse. Je n'ai même pas pris la peine de regarder le site MSDN avant parce que je pensais que toutes les méthodes y sont uniquement pour microsoft langages(C,C++,C#,VB...) je ne pense pas que javascript soit supportée. m'attendais à quelque chose de beaucoup plus compliqué.
OriginalL'auteur Jake | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, assurez-vous que "/\ " et " \ " (dans la chaîne de connexion) est juste une faute de frappe dans la.
Deuxième, voici une version de la commande de Suppression:
Et, Modifier la commande (sans boucle -> mises à jour de tous les [correspondance] enregistrements):
Veuillez noter, je n'ai pas testé (n'ont pas Accès pour le moment), donc il y aura peut être quelques
la syntaxe de bugs...
Espère qu'il travaille et aide.
Je pense que ces liens pourraient être utiles pour voir la différence: w3schools.com/ADO/ado_ref_command.asp et w3schools.com/ADO/ado_ref_recordset.asp
adoCmd.CommandText("Delete * From tblName Where FieldName = 'Quentin'");
n'a pas fonctionné pour moi, maisadoCmd.CommandText="Delete * From tblName Where FieldName = 'Quentin'";
a fait un travail juste pour infoMerci pour le tuyau! J'ai fait des corrections.
OriginalL'auteur Igor Turman
OriginalL'auteur kayalvizhi