Der Update-Join-Effekt ist im ersten Durchlauf von „select“ nicht sichtbarJavaScript

Javascript-Forum
Guest
 Der Update-Join-Effekt ist im ersten Durchlauf von „select“ nicht sichtbar

Post by Guest »

Ich habe dieses sehr seltsame Verhalten bei der Verwendung von pglite (PostgreSQL Version 16) in Firefox, wo ich ein UPDATE JOIN und dann ein SELECT ausführe, das beim ersten Mal nicht die durch das UPDATE vorgenommene Änderung widerspiegelt, aber wenn ich es ausführe es ein zweites Mal tut es!

Code: Select all

async function handleDeselectElement()
{
console.assert(g.parentNode.tagName=='svg');
const idbox = parseInt(g.id.substring('g_'.length));
const selectedContextIndex = parseInt(g.parentElement.id);

const xForms = g.transform.baseVal;// an SVGTransformList
const firstXForm = xForms.getItem(0); //an SVGTransform
console.assert (firstXForm.type == SVGTransform.SVG_TRANSFORM_TRANSLATE);
const translateX = firstXForm.matrix.e;
const translateY = firstXForm.matrix.f;

const ret = await db.query(`
UPDATE translation t
SET x=${translateX}, y=${translateY}
FROM rectangle r
WHERE t.idrectangle=r.idrectangle
AND r.idbox=${idbox}
RETURNING *
`);

console.log(ret);

await enforce_bounding_rectangle(selectedContextIndex);

const links = await compute_links(selectedContextIndex);
//  mycontexts.contexts[selectedContextIndex].links = await links;
document.getElementById(`links_${selectedContextIndex}`).innerHTML = drawLinks(links);
}
Ist mein UPDATE.

Code: Select all

upload.addEventListener("click", async (evt)=>{
const ret = await db.query(`
SELECT json_build_object(
'diagram', (SELECT json_agg(row_to_json(diagram))::json FROM diagram),
'box', (SELECT json_agg(row_to_json(box))::json FROM box),
'field', (SELECT coalesce(json_agg(row_to_json(field))::json, '[]'::json) FROM field),
'value', (SELECT coalesce(json_agg(row_to_json(value))::json, '[]'::json) FROM value),
'link', (SELECT coalesce(json_agg(row_to_json(link))::json, '[]'::json) FROM link),
'tag', (SELECT json_agg(row_to_json(tag))::json FROM tag),
'message_tag', (SELECT coalesce(json_agg(row_to_json(message_tag))::json, '[]'::json) FROM message_tag),
'graph', (SELECT coalesce(json_agg(row_to_json(graph))::json, '[]'::json) FROM graph),
'rectangle', (SELECT json_agg(row_to_json(rectangle))::json FROM rectangle),
'translation', (SELECT json_agg(row_to_json(translation))::json FROM translation),
'polyline', (SELECT coalesce(json_agg(row_to_json(polyline))::json, '[]'::json) FROM polyline)
);
`);

const doc = ret.rows[0].json_build_object;
const json_doc = JSON.stringify(doc);
console.log(json_doc);
const response = await fetch(
//"https://www.diskloud.fr:3000/linkedboxdraw/post",
"https://109.11.33.79:8443/linkedboxdraw/post",
{
method: "POST",
body: json_doc,
headers: {"Content-Type": "application/json"}
}
);
console.log(response.status);
});
Ist mein SELECT.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post